0

询问:

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 的结果。我在这里想念什么......

感谢您的所有回复!

4

3 回答 3

2

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

SELECT * from t1
WHERE item_id NOT IN (SELECT item_id from t2)
于 2012-06-08T18:35:19.003 回答
0

你加入然后排除一切:/

至少这就是sql在这里所说的

尝试这样的事情:

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

就像在这里一样。

于 2012-06-08T18:39:36.940 回答
0

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

SELECT * 
from t1
LEFT JOIN t2 ON t1.item_id = t2.item_id
WHERE t2.item_id IS NULL
于 2012-06-08T18:44:30.273 回答