首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自其他表的MySQL更新表

来自其他表的MySQL更新表
EN

Stack Overflow用户
提问于 2013-12-03 18:59:32
回答 2查看 112关注 0票数 1

我有两张桌子:联系人和公司。

代码语言:javascript
复制
contacts has : id, group_id, company_id, email, company
companies has: id, group_id, name

目前,contacts.group_id值是0(最近添加了列),contacts.company值也是"“。

如何将数据移动到

代码语言:javascript
复制
companies.group_id to contacts.group_id and companies.name to contacts.company 
based on contacts.company_id = companies.id?

我尝试了以下查询,但给出了错误

代码语言:javascript
复制
UPDATE contacts SET contacts.group_id=companies.group_id 
FROM companies WHERE contacts.company_id=companies.id;

它给了我这个错误

代码语言:javascript
复制
#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来运行这个查询。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-03 19:20:35

Mysql允许您在UPDATE语句中加入:

代码语言:javascript
复制
UPDATE contacts c
INNER JOIN companies co ON c.company_id = co.id 
SET c.group_id = co.group_id,
    c.company = companies.name

来自文档

代码语言:javascript
复制
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子句列出了连接中涉及的表。

票数 2
EN

Stack Overflow用户

发布于 2013-12-03 19:02:42

我认为这对你有用:

代码语言:javascript
复制
update
  contacts,
  companies
set
  contacts.group_id=companies.group_id, 
  contacts.company=companies.name
where
  contacts.company_id = companies.id
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20359413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档