0

我有以下代码

$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_idfrom 。color_id我怎样才能做到这一点?

我添加了另一个存在的表。使用上面的代码,一切正常我只能显示 product_color.product_id ,因为似乎信息没有被提取。

4

3 回答 3

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
于 2013-06-08T00:07:27.640 回答
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
于 2013-06-07T22:59:51.667 回答
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]
于 2013-06-07T23:03:27.840 回答