SQL多对一的布尔值

时间:2016-05-20 17:56:56

标签: sql

我正在尝试设置一个SQL语句,当一个项为真时返回1。

ID  |  ID2  | color | is blue present
---------------------------------------
1   |  12   | blue  | 1
1   |  12   | red   | 1 
1   |  13   | red   | 0

因此,当我将IDID2的密钥组合为color蓝色时,使用上表,无论其他颜色是什么,这个相同的密钥组合都应该包含{{1}作为1.

我感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您可以在仅检索蓝色值的查询上左键加入查询:

SELECT    a.id, a.id2, a.color, 
          CASE WHEN b.id IS NOT NULL THEN 1 ELSE 0 END AS is_blue_present
FROM      mytable a
LEFT JOIN mytable b ON a.id = b.id AND a.id2 = b.id2 AND b.color = 'blue'