我有两张桌子:联系人和公司。
contacts has : id, group_id, company_id, email, company
companies has: id, group_id, name目前,contacts.group_id值是0(最近添加了列),contacts.company值也是"“。
如何将数据移动到
companies.group_id to contacts.group_id and companies.name to contacts.company
based on contacts.company_id = companies.id?我尝试了以下查询,但给出了错误
UPDATE contacts SET contacts.group_id=companies.group_id
FROM companies WHERE contacts.company_id=companies.id;它给了我这个错误
#1064 - You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version
for the right syntax to use near 'FROM companies WHERE
contacts.company_id=companies.id' at line 1我使用phpmyadmin来运行这个查询。
发布于 2013-12-03 19:20:35
Mysql允许您在UPDATE语句中加入:
UPDATE contacts c
INNER JOIN companies co ON c.company_id = co.id
SET c.group_id = co.group_id,
c.company = companies.name来自文档
UPDATE [LOW_PRIORITY] [IGNORE] table_reference
SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ...
[WHERE where_condition]
[ORDER BY ...]
[LIMIT row_count]还可以执行涵盖多个表的更新操作。但是,不能在多表更新中使用ORDER或ORDER。table_references子句列出了连接中涉及的表。
发布于 2013-12-03 19:02:42
我认为这对你有用:
update
contacts,
companies
set
contacts.group_id=companies.group_id,
contacts.company=companies.name
where
contacts.company_id = companies.idhttps://stackoverflow.com/questions/20359413
复制相似问题