2011-07-17 5 views
0

こんにちは私はまだかなり新しいSQLクエリを実行しています。私は他の3つのテーブルのプライマリキーでテーブルを更新しようとしています。私は何のエラーもないですが、私のテーブルが更新されていないので、明らかに動作していません...誰かが私が間違ったことを教えてくれますか?他の3つのテーブルのプライマリキーでテーブルを更新しようとしています

更新テーブルは、助けてください "SET_COLOR"

$results_array = mysql_query(" 
    SELECT * school_art 
    JOIN baseimage 
    ON school_art.series_code = baseimage.basefolder 
    WHERE baseimage.image_type = 'B' 
    UPDATE set_colors SET 
    set_colors.school_art_id = school_art.id, 
    set_colors.baseimage_id = baseimage.id, 
    set_colors.baseimage_layer = baseimage.layer 
    ;"); 
    return !empty($result_array) ? array_shift($result_array) : false; 

と呼ばれている。..

答えて

0

あなたは近くにあったが、update syntaxによると、私たちは少しの周りにそれをシャッフルする必要があります。

UPDATE set_colors 
JOIN school_art 
JOIN baseimage 
ON school_art.series_code = baseimage.basefolder 
set_colors.school_art_id = school_art.id, 
set_colors.baseimage_id = baseimage.id, 
set_colors.baseimage_layer = baseimage.layer 
WHERE baseimage.image_type = 'B' 
  • 常に先頭UPDATE
  • 次に、JOINを含むテーブルの参照
  • 次に、SETの列を設定します(JOINedクエリでは、最初の列だけでなく、他のテーブルの列も設定できます)。
  • 次に、WHERE節。

ただし、これを実行しないでください:WHOLEテーブルが更新されます。 set_colorsのどの列を更新する必要があるレコードを選択するかに基づいていますか?

+0

ありがとうございます。はい、特定のレコードを更新したいと思います。 – GGcupie

+0

'パブリック静的関数set_colors($値)update_ {UPDATEのset_colors がschool_art を登録しようschool_art ON baseimage のJOIN {$値} = baseimage.basefolder set_colors.school_art_id = school_art:私は、この作品のようなものが考えたクラスを作成していました。 .id、 set_colors.baseimage_id = baseimage.id、 set_colors.baseimage_layer = baseimage.layer where baseimage.image_type = 'B'' – GGcupie

+0

クエリでは、set_colorsのどの列に基づいて行を選択できるかを知る必要があります。 – Wrikken

関連する問題