1. ホーム
  2. sql-server

[解決済み】SQL WHERE... IN句 複数のカラム

2022-04-15 03:27:13

質問

SQL Serverで以下のクエリを実装する必要があります。

select *
from table1
WHERE  (CM_PLAN_ID,Individual_ID)
IN
(
 Select CM_PLAN_ID, Individual_ID
 From CRM_VCM_CURRENT_LEAD_STATUS
 Where Lead_Key = :_Lead_Key
)

しかし、WHERE..IN句は1つの列しか許可しません。別の内部SELECTで2つ以上のカラムを比較するにはどうすればよいですか?

どのように解決するのですか?

サブクエリから派生テーブルを作成し、この派生テーブルにtable1を結合することができます。

select * from table1 LEFT JOIN 
(
   Select CM_PLAN_ID, Individual_ID
   From CRM_VCM_CURRENT_LEAD_STATUS
   Where Lead_Key = :_Lead_Key
) table2
ON 
   table1.CM_PLAN_ID=table2.CM_PLAN_ID
   AND table1.Individual=table2.Individual
WHERE table2.CM_PLAN_ID IS NOT NULL