查询需要帮助

时间:2011-01-19 16:45:05

标签: sql mysql

如何从表T1

中选择结果
T1.itemID = T2.itemID

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

2 个答案:

答案 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 JOININNER JOIN的不同之处在于,如果右表中没有行,结果中仍会返回一行,但所有列= NULL。 )

答案 1 :(得分:1)

select * from T1 where ItemID not in (select ItemId from T2)