如何从表T1中选择结果
T1.itemID = T2.itemID
Run Code Online (Sandbox Code Playgroud)
在T2中没有找到相应的记录,即仅在T1中找到?
像这样:
SELECT …
FROM t1 LEFT JOIN t2 ON (t1.itemid = t2.itemid)
WHERE t2.itemid IS NULL
Run Code Online (Sandbox Code Playgroud)
使用NOT EXISTS的更明显的查询运行较慢版本的MySQL.感谢@OMG Ponies 在更新(未指定)版本中的基准测试.
这是NOT EXISTS版本:
SELECT …
FROM t1
WHERE NOT EXISTS (SELECT 1 FROM t2 WHERE t2.itemid = t1.itemid)
Run Code Online (Sandbox Code Playgroud)
(解释,回答注释:LEFT JOIN不同之处INNER JOIN在于,如果右表中没有行,结果中仍会返回一行,但所有列= NULL.)