如何区分不同表中的列名?

时间:2018-04-22 18:30:30

标签: mysql

我有两张桌子,他们的结构如下:

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,但我不知道在哪里

2 个答案:

答案 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`