mysql - 更新时无法从表中获取id

标签 mysql

我无法理解 我正在使用 mysql

这是我的查询

SET SQL_SAFE_UPDATES = 0;
update `accounts` as A
inner join `company` as C on C.Email = 'shalvasoft@gmail.com'
SET A.username = 'shaliapin777',
A.company_id = C.id,
C.cat = (select id from category where name = 'sdbjn'),
C.ContactName = 'shalva'
where A.email_code = 'edfwe4r64fd65ew46fd45' ;

一切正常,除了 A.company_id = C.id 这条线 所以我无法获得正确的ID

你能帮我吗???

最佳答案

您正在尝试更改两个单独表中的值,但未指定这些表的关联方式。看起来您的主键混淆了。

为了使其工作,您需要为 INNER JOIN 指定适当的 ON 条件。例如,如果 company 表的主键是 id 列:

UPDATE
    accounts as A
    INNER JOIN company as C ON C.id = A.company_id
SET
    ...
WHERE
    accounts.email_code = '...'

关于mysql - 更新时无法从表中获取id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22283398/

相关文章:

MySQL JOIN、WHERE 和 IF 问题

mysql - 如何在 MySql 数据库中存储 boolean 值数组?

php - PHP Mysql Codeigniter 应用程序中的 session 变量大小增加

mysql - 如何通过 data.stackexchange.com 获取每个标签的问题和答案?

mysql - SQL SELECT 从具有特殊条件的同一个表中生成附加列

php - 如何在 PHP 中将数据库从一台服务器复制到另一台服务器?

mysql - 如何查看 MySQL 存储过程中的错误?

mysql 我怎样才能得到这样一个甲酸年 :month:day 的日期差异结果

mysql - 使用 Inner Join 在 SQL 中查找已关闭/赢得的机会中入站与出站的百分比

mysql - 当同一台服务器上有 2 个 mysql slave 实例时,如何区分 mysql master binlog dump 线程?