在 JOINS 和 WHERE 子句有问题的 SQL 语句方面需要帮助

Need assistance with SQL statement having trouble with the JOINS and WHERE clause

该公司正在对其库存进行分析。他们正在考虑清除不受客户欢迎的书籍。为此,他们需要一份从未购买过的书籍清单。使用提供此信息的联接编写查询。您的结果应包括所有书籍详细信息和订单号列。按书名对结果排序。

 SELECT o.order_nbr, b.*
 FROM orders o JOIN books 
 WHERE 
 ORDER BY book_title

这就是我所能想出的全部,我仍在学习联接并努力找出正确的语句应该是什么。不确定在 WHERE 子句中放入什么,也不知道如何正确连接这些表。

您需要一个 ON 子句来指定您加入的对象。此外,您的 WHERE 子句是空的,并且您没有指定您正在使用的 JOIN 的类型。查看 table 的设置方式,预计您将在 ORDER_ITEMS 上加入 BOOKS table,其中还包含 ORDER_NBR

在问题中,它要求查找没有订单的书籍,因此正确的连接应该是 BOOKSORDER_ITEMS 之间的 LEFT JOIN,因为这将包括每本书,甚至那些没有订单的,它们的 ORDER_NBRNULL

SQL 看起来像

SELECT o.order_nbr, b.*
 FROM books b
 LEFT JOIN order_items o on b.book_id = o.book_id
 WHERE o.order_nbr is null
 ORDER BY book_title

这将 return 只有没有订单的书。