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_idcolor_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_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 に答える
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 に答える