我有两张桌子,他们的结构如下:
table 1: id, name, description
table 2: id, otherDescription
我想设置" description"的值表#1中的值" otherDescription"从表#2分别得到这个id。我写了这个问题:
UPDATE `table_1` SET description = (SELECT oldDescription FROM table_2 WHERE id = id))
MySql如何知道表达式WHERE id = id
中的第一个id取自一个表,而其他id取自第二个表?如何写这个查询正确?我想这里必须使用AS,但我不知道在哪里
答案 0 :(得分:1)
你可以使用表格鬃毛,例如:
UPDATE table_1
INNER JOIN table_2 ON table_1.id = table_2.id
SET table_1.description = table_2.oldDescription
或表名别名
UPDATE table_1 a
INNER JOIN table_2 b ON a.id = b.id
SET a.description = b.oldDescription
答案 1 :(得分:0)
您可以在UPDATE中加入这两个表,并为每个表添加别名。您使用alias.columnname:
标识列UPDATE `table1` a
JOIN `table1` b ON a.`id` = b.`id`
SET a.description` = b.`otherDescription`