我有两个表tb1和tb2。 tb1中的id是pk,在tb2中引用为fk。 我想知道tb1的id值是1,2,3,4,5而tb2的fk_values是1,2,3,4但是pk 5没有,我怎么能找到它。
tb1
------
id
------
1
------
2
------
3
------
4
------
while tb2
fk_id
-------
1
--
1
--
2
--
3
--
3
--
但是表2没有4的值,那我怎么能在这里找到4值。
要使用的数据库是mysql。
答案 0 :(得分:3)
要查找tb1中的内容而不是tb2中的内容,请执行以下操作:
SELECT tb1.* FROM tb1 LEFT JOIN tb2 ON tb1.id = tb2.fk_id WHERE tb2.fk_id IS NULL
以另一种方式(在tb2中而不是在tb1中)这样做,在这种情况下不能,因为,有一个外键,但是稍后它可能对你有用,以后只需切换两个表
SELECT tb2.* FROM tb2 LEFT JOIN tb1 ON tb1.id = tb2.fk_id WHERE tb1.id IS NULL
答案 1 :(得分:0)
使用left join
。left join
将为您提供仅存在于左表中的结果。这意味着您必须像这样使用tb1 left join
tb2。
// pick the tb1.id in the result when the fk_id is null.
select tb1.id from tb1 left join tb2 on tb1.id = tb2.fk_id where tb2.fk_id is null;