尝试使用其他三个表的主键更新表

时间:2011-07-17 23:22:04

标签: php mysql

您好我仍然是新的sql查询我试图用其他三个表的主键更新表。我没有得到任何错误,但它显然不起作用,因为我的表没有更新...有人可以告诉我我做错了什么?

更新表名为“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;

请帮助..

1 个答案:

答案 0 :(得分: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中的哪些列,您要选择应更新的记录?