MySQL NOT IN查询仅包含我要排除的结果

时间:2012-06-08 18:31:09

标签: mysql

查询:

SELECT * 
from t1
INNER JOIN t2 ON t1.item_id = t2.item_id
WHERE t1.item_id NOT IN
(Select t2.item_id from t2)

基本上,我试图用t2表中的item_id排除所有结果,但它只包含t2表中带有item_id的结果。我在这里错过了什么......

感谢所有回复!

3 个答案:

答案 0 :(得分:2)

我很惊讶你得到了任何查询,因为你似乎排除了你通过联接所包含的任何内容。尝试将您的查询更改为:

SELECT * from t1
WHERE item_id NOT IN (SELECT item_id from t2)

答案 1 :(得分:0)

您加入然后排除所有内容:/

至少这就是sql所说的here

尝试这样的事情:

SELECT 
    item_id
FROM 
    t1
WHERE 
    item_id NOT IN (SELECT item_id from t2)

,如here

答案 2 :(得分:0)

这将从T1中选择T2中没有相应条目的项目。我想这就是你想要的。

SELECT * 
from t1
LEFT JOIN t2 ON t1.item_id = t2.item_id
WHERE t2.item_id IS NULL