PHP,MySQL,列出两个表之间没有链接的记录?

时间:2014-09-08 23:28:08

标签: php mysql

好的,我继承了一个真正混乱的数据库,并负责清理它。

问题是这个......我必须比较2个表。 table1(成员)和table2(关联)并查找不再具有关联的成员的所有实例,以及关联不再指向成员的所有实例

关联表table2有一个名为mbr_id的字段,您可以将其链接到id中成员的table1字段。

我假设我需要某种while循环...但我不知道如何形成查询。有点像...

SELECT * FROM `members2`, `assocs` WHERE `assocs.mbr_id` != `members2.id`
是吗?不能......对吗?

1 个答案:

答案 0 :(得分:1)

那不对是正确的。试试这两个问题:

select m.*
from members m
where not exists (select 1 from assocs a where a.mbr_id = m.id);

select a.*
from assocs a
where not exists (select 1 from members m where a.mbr_id = m.id);

第一个是没有有效关联的成员。第二个是没有有效成员的协会。