使用带有两列

时间:2018-02-12 13:59:26

标签: sql sql-server

我不知道如何将IN运算符用于两列。

以下是对一列的查询:

select * 
from Mouvement_Final T 
where T.Comp_Id  in (select Comp_Id from Compte where Comp_Idcategorie='AOPT')

我希望在Comp_Idcategorie='AOPT'两列Comp_IdComp_idcouleur时过滤。

2 个答案:

答案 0 :(得分:5)

只需使用exists即可。它概括得更好。对于您的代码:

select T.* 
from Mouvement_Final T 
where exists (select Comp_Id
              from Compte c
              where c.Comp_Idcategorie = 'AOPT' and
                    c.Comp_Id = T.Comp_Id
             );

你应该能够看到这是如何推广到更多条件的。

答案 1 :(得分:2)

您可以将JOINdistinct

一起使用
select distinct T.* 
from Mouvement_Final T
join Compte C on T.Comp_Id = C.Comp_Id and 
                 T.Comp_idcouleur = C.Comp_idcouleur and
                 C.Comp_Idcategorie = 'AOPT'