我有以下代码
$sql = <<<SQL
SELECT kit_color.color_id, color.color_name FROM kit_color
LEFT JOIN color ON kit_color.color_id = color.color_id
WHERE kit_color.id = %s
SQL;
return sprintf($sql, self::quote($id));
表数据类似于
Table "product_color"
Column1 "color_id"
Column2 "product_id"
Table "kit_color"
Column1 "id"
Column2 "color_id"
Table "color"
Column1 "color_id"
Column2 "color_name"
示例数据
product_color, as-1, 86501
我可以使用color_id
,但我需要显示product_id
的{{1}}。我怎么能这样做?
我添加了另一张表。使用上面的代码,一切正常我只能显示product_color.product_id,因为它似乎没有被拉出信息。
答案 0 :(得分:2)
你可以这样做:
SELECT PC.product_id, KC.color_id, C.color_name
FROM kit_color as KC
LEFT JOIN color as C
ON KC.color_id = C.color_id
LEFT JOIN product_color as PC
ON PC.color_id = C.color_id
WHERE KC.id = %s
答案 1 :(得分:0)
我想你想要这个...
SELECT product_color.product_id, kit_color.color_id, color.color_name FROM kit_color
LEFT JOIN color ON kit_color.color_id = color.color_id
LEFT JOIN product_color ON product_color.color_id = color.color_id
WHERE kit_color.id = %s
答案 2 :(得分:0)
您的陈述不包括选择部分中的product_id。它也与所描述的表数据不匹配。使用您提供的表数据,如果您有kit_color.id,那么您应该能够像这样获得product_id:
SELECT product_color.product_id
FROM kit_color
JOIN product_color ON
kit_color.color_id=product_color.color_id
WHERE kit_color.id=[the_id_you_have]