mariadb 如何使用另一个表中的信息更新列

yzuktlbb  于 2022-11-08  发布在  其他
关注(0)|答案(1)|浏览(180)

我定义了一个表,如下所示:

CREATE TABLE employees 
    (employee_id    INT(6),
     email          VARCHAR(25) NOT NULL);

另一个定义如下:

CREATE TABLE personne (
    nopers          NUMERIC(6)  PRIMARY KEY,
    courriel        VARCHAR(40));

我想根据对应的“employee_id = nopers”,用表“employees”中对应的“email”填充表“personne”中的列“courriel”,并将“@ technissimo.fr“添加到所有电子邮件中。
我试过这个,但似乎不起作用:

UPDATE personne
   SET courriel = CONCAT(employees.email, '@technissimo.fr')
 WHERE employees.email =
       (SELECT email FROM personne JOIN employees ON employee_id = nopers);

有人能给我提供关于这个问题的答案吗?

r1wp621o

r1wp621o1#

WHERESET子句后面的email列应属于personne表,这些问题将产生错误。
查询可以按照如下语法重新排列,不需要子查询,但仍保留现有的匹配条件ON employee_id = nopers

UPDATE personne 
  JOIN employees
    ON employee_id = nopers
   SET courriel = CONCAT(email,'@technissimo.fr')

Demo

相关问题