我很努力尝试解决这个问题。...请帮助:(
我有三个表,我正在从另外两个表的数据更新一个表。
更新表:set_colors
列:setcolors_id(主要),art_id(int),baseimage_id(int),color_id(int)
我从两个表中获取信息
表名:art
列:id(主要),artname(varchar),series_code(varchar)
表格名称:baseimage
列:id(主要),base_folder(varchar),图形,image_type(varchar),layer(int)
示例数据:
art表中的series_code和baseimage表中的base_folder具有相同的值,但是art表中可以具有数百个重复的系列代码,并且如果base_folder名称相同但层不同,则baseimage最多只能有5个最大值。
示例数据:
我想用art表[id],baseimage [id]和baseimage =“ B”来更新set_colors表,所以它需要做的是遍历art表“ layer”列-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 INTO set_colors
(art_id, baseimage_id)
SELECT a.id, b.id
FROM baseimage b
INNER JOIN art a
ON b.base_folder = a.series_code
WHERE b.image_type = 'B'
关于php - UPDATE新表JOIN其他两个表?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6736955/