我正在学习 JOINS 并需要以下问题的帮助:
在 BOOKS 表中显示所有书籍的列表。如果客户已经订购了一本书,还要列出订单号并说明客户的居住地。
这是我能做到的。甲骨文 11g。
SELECT B.TITLE, O.ORDER#, C.STATE FROM BOOKS B
LEFT OUTER JOIN ORDERITEMS OI ON B.ISBN = OI.ISBN
LEFT OUTER JOIN ORDERS O ON O.ORDER# = OI.ORDER#
LEFT OUTER JOIN CUSTOMERS C ON C.CUSTOMER# = O.CUSTOMER#;
这个查询在结果中给了我 35 行。我的 BOOKS 表只有 14 行。我的 ORDERITEMS 表有 32 行。我假设额外的 3 行是从未订购过的书?我所拥有的是否有意义。我在想是因为 books 表只有 14 行,那我就应该返回?我认为这是不可能的,因为同一本书存在于多个订单上。