我正在尝试打印以下列isbn
,title
,fName
,surname
和quantity
,但由于有多个订单,数据打印出来的每个订单,而不是只有一个订单数量的数字。我该怎么做?
SELECT book.isbn, book.title, author.fName, author.surname, orders.quantity
FROM book, author, orders
WHERE orders.bookID = book.isbn
ORDER BY book.isbn DESC;
答案 0 :(得分:2)
您需要GROUP BY
条款。我还建议添加显式连接(并删除现在多余的WHERE
子句):
SELECT book.isbn, book.title, author.fName, author.surname, SUM(orders.quantity) AS TotalOrders
FROM (book INNER JOIN author ON book.authorID = author.authorID)
INNER JOIN orders ON book.isbn = orders.bookID
GROUP BY book.isbn, book.title, author.fName, author.surname
ORDER BY book.isbn DESC
答案 1 :(得分:0)
如果您想要每个订单的数量,您的查询将为每个订单返回一行。如果您使用某种应用程序来显示结果,那么您可以使用应用程序代码来解决问题。
另一方面,如果您只是想知道订购了多少本书,那么您的查询将变为:
SELECT book.isbn, book.title, author.fName, author.surname, sum(orders.quantity) total
FROM book, author, orders
WHERE orders.bookID = book.isbn\
group by book.isbn, book.title, author.fName, author.surname
ORDER BY book.isbn DESC