如何从表T1
中选择结果T1.itemID = T2.itemID
并且在T2中没有找到相应的记录,即仅在T1中找到?
答案 0 :(得分:5)
像这样:
SELECT …
FROM t1 LEFT JOIN t2 ON (t1.itemid = t2.itemid)
WHERE t2.itemid IS NULL
使用NOT EXISTS的更明显的查询运行较慢版本的MySQL。感谢@ benchmarks in a newer (unspecified) version的@OMG小马。
这是NOT EXISTS版本:
SELECT …
FROM t1
WHERE NOT EXISTS (SELECT 1 FROM t2 WHERE t2.itemid = t1.itemid)
(解释,回答评论:LEFT JOIN
与INNER JOIN
的不同之处在于,如果右表中没有行,结果中仍会返回一行,但所有列= NULL。 )
答案 1 :(得分:1)
select * from T1 where ItemID not in (select ItemId from T2)