查询需要帮助

san*_*nta 0 mysql sql

如何从表T1中选择结果

T1.itemID = T2.itemID
Run Code Online (Sandbox Code Playgroud)

在T2中没有找到相应的记录,即仅在T1中找到?

der*_*ert 5

像这样:

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.)