我有两个表:MAINCOLOR
数据SUBCOLOR
为:
MAINCOLOR :
MAINID COLOR
1 RED
2 BLUE
3 GREEN
SUBCOLOR:
SUBID MAINID SUBCOLOR STATUS
1 1 PINK 0
2 1 ORANGE 1
3 2 VIOLET 1
我需要一个结果集:
MAINID COLOR SUBCOLOR
1 RED ORANGE
2 BLUE VIOLET
3 GREEN
结果集应该是MAINCOLOR
和SUBCOLOR
使用的连接MAINID
。需要具有status
为 1 的子数据。
您可以通过在和
LEFT JOIN
之间使用 a 来获得结果。maincolor
subcolor
关键是将过滤器置于
status=1
条件上JOIN
。您的代码将是:请参阅SQL Fiddle with Demo。
将
LEFT JOIN
返回表中的所有行以及maincolor
表中的任何匹配行subcolor
。由于您要将 a 应用于表WHERE
中的数据subcolor
,因此您需要将该过滤器移动到JOIN
条件以获取结果。