我想要的结果是两个列的组合,颜色和大小的LinkedColorSize
表在SQL Server。我有三个表Color
,Size
和LinkedColorSize
。
我有一个表Color
:
ColorName | 红 | 绿色
---|
您可以使用INNER JOIN
。on LinkedColorSize.Color = Color.Color
。对于LinkedColorSize, The join condition
Color = '0'will effectively making it
CROSS JOIN '中的Color = 0
select l.*, c.Color, s.Size
from LinkedColorSize l
inner join Color c on l.Color = c.Color or l.Color = '0'
inner join Size s on l.Size = s.Size or l.Size = '0'
order by l.LinkID, c.Color, s.Size
注意:在小提琴演示中,我已经改变了LinkID,以便它可以清楚地识别结果中的行如何对应于源(第三个表)
dbfiddle演示