我有一条SQL语句,该语句试图查找购买最多书籍的客户及其购买的书籍总数。相关的关系和属性是:
CUSTOMER (Cust_ID, FName, LName)
PURCHASE_ORDER (Cust_ID, Order_ID)
BOOK_ORDER (Order_ID)
给我错误的SQL语句是:
SELECT C.FName, C.LName, COUNT(B.Order_ID)
FROM CUSTOMER AS C,
PURCHASE_ORDER AS P,
BOOK_ORDER AS B
WHERE P.Order_ID = B.Order_ID
AND P.Cust_ID = C.Cust_ID
AND COUNT (B.Order_ID) = (SELECT MAX(NUM_BOOKS)
FROM (SELECT COUNT(B.Order_ID) AS NUM_BOOKS
WHERE P.Cust_ID = C.Cust_ID
AND B.Order = P.Order_ID
GROUP BY C.Cust_ID
)
);
/#1064-您的SQL语法有错误;在第9行的')LIMIT 0,25'附近,查看与您的MariaDB服务器版本相对应的手册以获取正确语法,以便用户使用
答案 0 :(得分:0)
尽管我100%同意到目前为止所发表的评论,但仍遵循这些原则……这似乎是功课。
SELECT
C.Cust_ID
, COUNT(B.Order_ID) AS TOTAL_BOOKS
FROM CUSTOMER C
LEFT JOIN PURCHASE_ORDER P ON P.Cust_ID = C.Cust_ID
LEFT JOIN BOOK_ORDER B ON B.Order_ID = P.Order_ID
GROUP BY C.Cust_ID
ORDER BY COUNT(B.Order_ID) DESC
LIMIT 1