私はこれを理解しようとしているナットを行く....助けてください:( を、私は3つのテーブルを持っていると私は2つの他のテーブルのデータからテーブルを更新していますUPDATE new table他の2つのテーブルに参加しますか?
更新表しています:。set_colors 列:setcolors_id (プライマリー)、art_id(int型)、baseimage_id(int型)、COLOR_ID(INT)
2つのテーブル私は
表名から情報を取得しています:芸術 列:ID(プライマリー)、artname(varchar型)、シリーズコード(varchar)
テーブル名:baseimage カラム:ID(プライマリ)、base_folder(VARCHAR)、グラフィック、のimage_type(VARCHAR)、層(INT) 例えばデータ:技術テーブルから
series_codeとbase_folder baseimageテーブルは同じ値を持ちますが、artテーブルには何百もの重複シリーズコードがあり、baseimageには同じbase_folder名があってもレイヤーが異なる場合は最大5つしかありません。
例えばデータ:
Iアートテーブルとset_colorsテーブルを更新する[ID]、baseimage [ID]、およびbaseimageは= "B"、そう何それ行う必要COLOR_IDだから結果は、このようなものになりますので、いくつかの行がintまたはNULL
することができる別のSQLクエリーによって更新されますcolumn--アートテーブル「層」を反復処理です:
を私が思いついたのはこれですが、動作しません。エラーメッセージはありません。それは単に表に値を設定しません。私は何が欠けているのですか?
$result_array = mysql_query("
UPDATE set_colors
JOIN art
JOIN baseimage
ON art.series_code = baseimage.base_folder
SET set_colors.school_art_id = art.id,
set_colors.baseimage_id = baseimage.id,
set_colors.baseimage_layer = baseimage.layer
WHERE baseimage.image_type = 'B'"
);
return !empty($result_array) ? array_shift($result_array) : false;
あなたは本当に既存の行を更新しますか、またはあなたが実際に新しい行を挿入しようとしているの? –
さて、それは良い点です!私はそれがまだ存在しないことをINSERTにするだろうと思う... doh。 UPDATEではなくINSERT以外のクエリが同じ場合はINSERT?実際に私はちょうどそれを試して、それは動作しなかったので、私はまだ間違って何かをしている – GGcupie