另一列中包含的boolean列值 - SQL

时间:2015-03-17 09:16:07

标签: mysql sql boolean

在此页面中 Check if column value exists in another column in SQL

用户希望获取包含在Called_ID列中的Calling_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

我怎么能这样做?非常感谢你!

2 个答案:

答案 0 :(得分:1)

您可以从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

答案 1 :(得分:0)

尝试使用左连接和case..when..then来检查被叫id是否为null然后输出0 else输出为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