繁体   English   中英

PHP,MySQL,列出未在2个表之间链接的记录?

[英]PHP, MySQL, list records that aren't linked between 2 tables?

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

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

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

我假设我将需要某种while循环...但是我怎么不知道如何形成查询。 就像是…

SELECT * FROM `members2`, `assocs` WHERE `assocs.mbr_id` != `members2.id`

是吗 不能...对吗?

那不可能是正确的。 尝试以下两个查询:

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);

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM