Select 选择、连接,作为“连接”;精选;如果他们在桌子上

Select 选择、连接,作为“连接”;精选;如果他们在桌子上,select,join,Select,Join,我有两张桌子。一个是产品颜色。。另一个是桥接表产品\u颜色\u桥接。。桥接表仅包含ProductID和ColorID 我需要一个存储过程,它返回所有颜色并向语句中添加一个“Selected”字段 表格 产品颜色 身份证,颜色 产品颜色桥 ID、ProductID、ColorID ColorID引用产品\u Colors.ID 理想结果 ID、颜色、ProductID、ColorID,已选定(必须使用SQL添加此字段) 其中所选字段值为TRUE或FALSE…在不知道数据库的情况下,标准SQL查询(

我有两张桌子。一个是产品颜色。。另一个是桥接表产品\u颜色\u桥接。。桥接表仅包含ProductID和ColorID

我需要一个存储过程,它返回所有颜色并向语句中添加一个“Selected”字段

表格
产品颜色 身份证,颜色

产品颜色桥 ID、ProductID、ColorID

ColorID引用产品\u Colors.ID

理想结果
ID、颜色、ProductID、ColorID,已选定(必须使用SQL添加此字段)


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

在不知道数据库的情况下,标准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
使用left outer join时,保留所有左表记录(颜色),然后直接在select子句中检查DB中是否存在响应颜色/产品,以返回“selected”值


希望这有帮助

判断它是真是假的条件是什么?你用的是什么数据库?条件是。。我需要返回所有颜色(不仅仅是选定的颜色),并且我需要根据ProductID知道是否选择了颜色。噢,哇!我们肯定会有一些进展。这是一些有效的方法。除了一件事之外,这很好用。它为所有的产品带来了所有的颜色。我只需要带回一种产品的信息。我们怎么做广告的WHERE条款???明白了!选择c.ID,Color,WebColor,ProductID,ColorID,CASE当b.ProductID为NULL时,则选择0,否则1结束从b.ColorID=c.ID上的Product_Colors c左外部连接Product_Colors_Bridge b中选择的,其中b.ProductID=@ProductID或b.ProductID为NULL