另一列中包含的布尔值列 - SQL

boolean column of values contained in another column - SQL

在这个页面 Check if column value exists in another column in SQL

用户想要获取包含在 Calling_ID 和 Called_ID 列中的 ID。 假设我在两个不同的表中有该列,比如

Table T1
Calling_ID
27
15
80
90
60
88
15
30
27
40

Table T2
Called_ID
10
20
90
88
30
40
60
40
95
30

另一个人想要 90、88、30 和 40 作为结果 - 我想要这种类型的布尔列作为结果

Calling_ID  contained
27          0
15          0
80          0
90          1
60          0
88          1
15          0
30          1
27          0
40          0

我该怎么做?非常感谢!

你可以从T1左连接到T2,检查调用的ID是否为NULL,例如:

SELECT 
    Calling_ID,
    CASE 
        WHEN T2.Called_ID IS NULL THEN 0 
        ELSE 1 
    END AS Contained
FROM T1
LEFT JOIN T2 ON T1.Calling_ID = T2.Called_ID

尝试将左连接与 case..when..then 结合使用以检查调用的 id 是否为空然后输出 0 否则输出为 1,如:

SELECT t1.calling_id, CASE WHEN t2.called_id IS NULL THEN 0 ELSE 1 END CASE AS "contained"
FROM t1 LEFT JOIN t2
ON t1.calling_id = t2.called_id