【问题标题】:boolean column of values contained in another column - SQL另一列中包含的值的布尔值列 - SQL
【发布时间】:2015-03-17 09:16:06
【问题描述】:

在这个页面 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

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

【问题讨论】:

    标签: mysql sql boolean


    【解决方案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
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2021-10-24
        • 2015-12-20
        • 1970-01-01
        • 1970-01-01
        • 2022-11-10
        • 2021-09-01
        • 1970-01-01
        • 2020-07-19
        • 2019-11-21
        相关资源
        最近更新 更多