更新选择与哪里&CONCAT问题

问题描述:

我想更正与另一个表格数据后,并列两列它显示错误。更新选择与哪里&CONCAT问题

错误代码:1064.您的SQL语法错误;检查对应于你的MySQL服务器版本的权利 语法

表1中的 手册:订单 表2:用户

我试图通过现场与user_id比较更新的订单表字段name在订单表中。

user_id链接到用户表。我试图连接first_name & last_name并更新订单表中的name

UPDATE orders SET 
(name = 
SELECT CONCAT(u.first_name, ' ', u.last_name) as full_name 
FROM users u 
WHERE u.first_name IS NOT NULL OR u.first_name <> ''); 

条件是这样的。

如果存在的任何user_id ID订单表应该检查usersid并选择& CONCAT first_name & last_name和更新的顺序表。

如果订单表中没有user_id,则该字段应该更新为NONE

对我来说,通过查询来实现它很复杂。我可以在PHP中做到这一点,但没有推荐。有人能帮忙吗?

假设你有订单表加入到user_id列,你可以试试这个:

UPDATE orders o SET o.name = 
    IFNULL((SELECT CONCAT(u.first_name, ' ', u.last_name) AS full_name 
      FROM users u 
      WHERE u.user_id = o.user_id 
      AND u.first_name IS NOT NULL 
      AND u.first_name <> ''), 'NONE'); 
+0

错误代码:1054未知列在“o.user_id“where子句中”它没有采取订单表列 – TomPHP

+0

我假设您在订单表上有一个user_id列来加入,否则您如何期望提取与订单相对应的用户名? :) – 83N

+0

在订单表中我有'user_id'和在用户表中我有'id'这两个字段都可以加入 – TomPHP