我有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 ...
答案 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子句中检查数据库中是否存在相应的颜色/产品以返回“选定”值。
希望这有帮助!