比较两个表并找出不匹配

时间:2011-02-14 17:42:36

标签: sql mysql

我有两个sql表,我想让他们互相攻击,找到那些不匹配的。

我有一些有用的东西,但由于某种原因错过了两个记录?

table flag_content包含: - 用户身份 - content_id

表topfive_order包含 - nid - uid

我希望在flag_content.content_id中找到topfive_order.nid不存在的所有记录

我当前的查询是:

select * from flag_content left join topfive_order topfive_order ON flag_content.content_id = topfive_order.nid WHERE topfive_order.nid is null

任何提示或建议都非常欢迎。我不太确定我正在做什么与左连接..所以我假设这两个网络的记录与此有关。

1 个答案:

答案 0 :(得分:1)

转动连接

SELECT *
FROM topfive_order topfive_order left join flag_content 
  ON flag_content.content_id = topfive_order.nid 
WHERE flag_content.content_id IS NULL

要查找topfive_order表中flag_content表中不存在的行,您需要将topfive_order放在LEFT JOIN的左侧。

有关各种联接类型的详细信息,请参阅Wikipedia