更新选择与哪里&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订单表应该检查users
表id
并选择& 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');
错误代码:1054未知列在“o.user_id“where子句中”它没有采取订单表列 – TomPHP
我假设您在订单表上有一个user_id列来加入,否则您如何期望提取与订单相对应的用户名? :) – 83N
在订单表中我有'user_id'和在用户表中我有'id'这两个字段都可以加入 – TomPHP