如何检查是否每个主键值都被引用为另一个表中的外键
我有两个表tb1和tb2. tb1中的id是pk,在tb2中称为fk. 我想知道tb1是否具有ID值分别为1,2,3,4,5,tb2具有1,2,3,4的fk_values,但没有pk 5时如何找到它.
I have two table tb1 and tb2 . id in tb1 is pk and referenced as fk in tb2. I want to know if tb1 has id values as 1,2,3,4,5 and tb2 has fk_values for 1,2,3,4 but doesn't have for pk 5 how can i find this.
tb1
------
id
------
1
------
2
------
3
------
4
------
while tb2
fk_id
-------
1
--
1
--
2
--
3
--
3
--
但是表2没有4的值,那么我如何在这里找出4的值.
but table 2 doesn't have values for 4 then how can i find out the 4 value here .
要使用的数据库是mysql.
Database to be used is mysql.
要查找tb1中的内容,而不是tb2中的内容,请执行以下操作:
To find what's in tb1 but not in tb2 do this:
SELECT tb1.* FROM tb1 LEFT JOIN tb2 ON tb1.id = tb2.fk_id WHERE tb2.fk_id IS NULL
以另一种方式(在tb2中而不在tb1中)进行此操作,在这种情况下不能这样做,因为有一个外键,但是尽管如此,以后您只需切换两个表可能对您有用
To do it the other way (in tb2 but not in tb1 ), which cannot be in this case because, there is a foreign key, but none the less it might be useful for you later simply switch the two tables
SELECT tb2.* FROM tb2 LEFT JOIN tb1 ON tb1.id = tb2.fk_id WHERE tb1.id IS NULL