好的,我的数据库中有两个表。我有一本表书,有(id,title,author),我有另一个表订单,有(id,bookid,authorid,fromdate,todate)。
我只是为了获得订购/预订的所有书籍。意思是,书籍表中的所有书籍,在订单表中的位置应该没有orders.bookid和任何书籍一样.id
所以,我已经提出了这个问题:
SELECT books.title, books.author
FROM books
INNER JOIN orders
ON orders.bookid ORDER <> books.id
看起来我找到了它,看起来与之合作:
SELECT * FROM books LEFT JOIN orders ON books.id = orders.bookid WHERE orders.bookid IS NULL
您怎么看?
所以,我的示例中有6本书,其中有ids 1-6,我在订单表中有两个订单,其中bookid(s)是3和4.现在,如果我运行我的查询,它会告诉我1-2和5-6(两次)的书籍,以及书籍3和4一次。
我不知道我到底做错了什么,但无论如何,我有点卡住了。
答案 0 :(得分:2)
你可以试试这个:
SELECT b.title, b.author
FROM books b
WHERE NOT EXISTS (SELECT 1 FROM orders o WHERE o.bookid = b.id);
答案 1 :(得分:-2)
为什么不给你的表别名并加入id列?
SELECT
B.TITLE,
B.AUTHOR
FROM BOOKS B
INNER JOIN ORDERS O ON B.ID = O.BOOKID