我會疲於摸不着頭腦....請幫助:( 我有三個表,我從其他兩個表中的數據更新表更新新表加入兩個其他表?
更新表:set_colors 列:setcolors_id (主),art_id(INT),baseimage_id(INT),COLOR_ID(INT)
兩個表我從
表名稱獲取信息:藝術 列:ID(主),artname(VARCHAR), series_code(varchar)
表名:baseimage 列:ID(主),base_folder(VARCHAR),圖形,IMAGE_TYPE(VARCHAR),層(INT) 示例數據:
的series_code從現有技術表和base_folder from baseimage表具有相同的值,但藝術表可以包含數百個重複的系列代碼,並且baseimage可能只有5個最大值(如果具有相同的base_folder名稱但具有不同的圖層)。
示例數據:
我想更新與現有技術表[ID],baseimage [ID]的set_colors表,並且其中所述baseimage = 「B」,所以它需要做的是通過藝術表「層」迭代column--的COLOR_ID將再SQL查詢進行更新,因此某些行可能是int或NULL
所以結果應該是這個樣子:
我想出了這個,但它不起作用,沒有錯誤信息。它只是不填充表格。我在想什麼?
$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?其實我只是試了一下,它沒有工作,所以我仍然做錯了 – GGcupie