IN子句中的多个字段?

时间:2018-02-12 05:56:10

标签: sql postgresql

是否可以在IN子句中包含多个字段?像下面这样的东西?

select * from data
where id1, id2 in (select id from dataset)

我希望查询在数据集中的id字段中出现id1和/或id2字段的数据中返回这些情况。

我正在使用postgresql。

3 个答案:

答案 0 :(得分:3)

如何将它转换为JOIN,因为你看起来这样的功能不存在?

select a.* 
from data a INNER JOIN dataset b
    ON a.id1 = b.id OR a.id2 = b.id 

答案 1 :(得分:2)

试试这个,

select  * 
from    data
where   exists (select  id 
                from    dataset 
                where   id = id1
                    OR  id = id2
                    ...
                    OR  id = id5)

答案 2 :(得分:0)

如果您有五个ID并且您知道它们是不同的,那么您可以这样做。 select ... from data where 5=(select count(*) from dataset where id in (id1, id2, ... id5))