繁体   English   中英

MySQL-表查询内部联接

[英]MySQL - Table Query Inner Joining to itself

在此处输入图片说明

考虑以上查询结果,

有没有办法我可以联接表本身以获得以下结果:-

POH_ID       | JOH_ID       | .............
-------------------------------------------
NULL         | JOH_00000002 | .............
POH_00000002 | JOH_00000001 | .............
POH_00000001 | JOH_00000001 | .............

意思是,如果只有一个JOH_ID,则检索该特定行;如果有多个相同的JOH_ID,则检索具有POH_ID的行。

照片中的结果是查询的结果

您可以找到具有相同joh_id的行数,将其与主表连接以过滤每个joh_id仅包含一行或非null poh_id的行

select t.*
from your_table t
join (
    select joh_id, count(*) as cnt
    from your_table
    group by joh_id
    ) t2 on t.joh_id = t2.joh_id
where t2.cnt = 1 or t.poh_id is not null;

暂无
暂无

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

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