根据不同列中某一行的值,返回具有相同ID的所有行

时间:2019-08-29 09:04:28

标签: mysql

我想基于不同列(例如ColumnB)的行之一的值,返回columnA上具有相同id的所有行。联接表的结果如下所示,我想返回所有没有至少一个我要查找的值实例的结果。

在下面的示例中,我要列出所有尚未联系的组织,这意味着ConStatus列中的组织名称或ID的值不为“ Contacted”。

enter image description here

3 个答案:

答案 0 :(得分:0)

您可以使用Subquery

SELECT * 
FROM table
WHERE OrgId NOT IN (
     SELECT DISTINCT OrgId
     FROM table
     WHERE ConStatus = 'Contacted'
)

子查询将获取所有已联系的组织ID。然后,使用NOT IN排除这些ID,以获得从未联系过的ID。

答案 1 :(得分:0)

您可以尝试将相关子查询与not exists一起使用

select * from tablename a
 where not exists 
     (select 1 from tablename b where a.orgid=b.orgid and ConStatus = 'Contacted')

答案 2 :(得分:0)

尝试这个。

SELECT * 
    FROM table
    WHERE OrgId NOT IN (
         SELECT  OrgId
         FROM table
         WHERE ConStatus = 'Contacted'
    )
相关问题