2011-10-13 42 views
1

我正在一个不存在,它并不像它应该。应该只有2个结果应该显示出来,但是我得到了18个。我应该找到在数据库中没有任何销售的所有书名(作为'书名')。出于某种原因,我认为我忘记了查询中的某些内容,但我不确定。我不明白为什么它不能正常工作。我的不存在就像它应该

Select title AS 'Book Title' 
From titles 
WHERE NOT EXISTS 
(Select ord_num 
    From sales 
    Where title = ord_num) 
+1

你能提供表格的字段吗? –

回答

1

看起来好像你正在努力寻找销售记录中,其中标题是一样的订单号,在你的EXISTS条款。我建议这样的:

Select title AS 'Book Title' 
From titles 
WHERE NOT EXISTS 
(Select ord_num 
    From sales 
    Where titles.title_id = sales.title_id) 
+0

好吧,我不得不在数据库中找到任何销售额的书名。 – st1984

+0

是的,但是为了做到这一点,您需要*在销售表上找到没有相应记录的书籍标题。如果在销售表上有销售记录的标题ID与订单号具有相同值的任何记录,换句话说,您正在返回所有内容,则显示您尝试执行的操作是返回所有标题。 –

+0

好吧,现在有道理。 – st1984

2

尝试:

Select title AS 'Book Title' 
    From titles 
WHERE NOT EXISTS 
(Select * 
    From sales 
    Where titles.title = sales.title); 

或者:

SELECT title AS 'Book Title' 
    FROM titles 
EXCEPT 
SELECT title AS 'Book Title' 
    FROM sales 
相关问题