如果它们在表中,则选择,加入,AS“已选择”

时间:2013-05-03 13:51:32

标签: select join

我有2张桌子。一个是Product_Colors ..另一个是桥表Product_Colors_Bridge ..桥表只包含ProductID和ColorID ..

我需要一个存储过程,它会带回所有颜色,并在声明中添加一个“Selected”字段。

表格
Product_Colors ID,颜色

Product_Colors_Bridge ID,ProductID,ColorID

ColorID引用Product_Colors.ID

理想结果
ID,Color,ProductID,ColorID,Selected(必须使用SQL添加此字段)

其中所选字段值为TRUE或FALSE ...

1 个答案:

答案 0 :(得分:0)

好吧,在不知道您的数据库的情况下,标准SQL查询(不是存储过程)可能如下所示:

SELECT
Color,
ProductID,
ColorID,
CASE WHEN ProductID IS NULL THEN FALSE ELSE TRUE END AS SELECTED
FROM
PRODUCT_COLORS C LEFT OUTER JOIN PRODUCT_COLORS_BRIDGE PC ON PC.COLORID=C.ID

使用左外连接保留所有左表记录(颜色),然后直接在select子句中检查数据库中是否存在相应的颜色/产品以返回“选定”值。

希望这有帮助!