您能帮我这个SQL查询吗?我的教授不知道为什么,建议我在这里发布

时间:2019-10-31 15:06:01

标签: mysql sql

我有一条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服务器版本相对应的手册以获取正确语法,以便用户使用

1 个答案:

答案 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