我正在尝试从我的数据库中的多个表中选择信息,这些表显示了多本书和订单的详细信息。
我正在将 isbn 查询到某本书的 5 个表(作者、图书作者、图书、订单行和图书订单)中,以检索有关该图书的信息以及已为该图书下达的订单信息。
SELECT orderline.isbn, title, ordernumber, orderdate, customername, numcopies, orderline.bookprice, authorname
FROM author natural join bookauthor natural join book join orderline natural join bookorder
WHERE orderline.isbn = book.isbn
and book.isbn = "1491936169"
ISBN: 1491936169 Title: Kafka: The Definitive Guide: Real-Time Data and Stream Processing at Scale
Author: Neha Narkhede, Todd Palino, Gwen Shapira
Order Number Date Customer Copies Price Total
N201699998 2016-12-24 Mary Hall 2 33.99 67.98
N201799999 2017-01-03 Aran Clauson 1 33.99 33.99
Total:
然而,有一些 isbn 还没有被排序,因此没有出现在 orderline 表中,而是出现在 book 表中,它显示了所有书籍的 isbn。
我想显示那些没有订单的书籍的书籍信息,例如:
ISBN: 0387848576 Title: The Elements of Statistical Learning
Author: Jerome Friedman, Trevor Hastie, Robert Tibshirani
No orders
本质上,我想要一个表格,显示没有订单的 isbn 和 null 值的书籍信息。我想这将是某种自然的外部连接,但是我的尝试导致空表。
更新的查询尝试使用 group by 删除重复项
SELECT ordernumber, orderdate, customername, orderline.isbn, title, orderline.numcopies, stock, shipmentbook.numcopies as shipcopies, authorname
FROM author natural join bookauthor natural join book left join bookorder natural join orderline
ON book.isbn = orderline.isbn
left join mousavs.shipmentbook
ON book.isbn = shipmentbook.isbn
WHERE stock > orderline.numcopies
GROUP BY ordernumber
ORDER BY orderdate, ordernumber, ISBN
错误代码:1055。SELECT 列表的表达式 #4 不在 GROUP BY 子句中,并且包含在功能上不依赖于 GROUP BY 子句中的列的非聚合列“mousavs.orderline.isbn”