更新时无法从表中获取id

时间:2014-03-09 14:25:55

标签: 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 这条线 所以我无法得到正确的身份

你可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

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

为了实现此目的,您需要为ON指定正确的INNER JOIN条件。例如,如果company表的主键是id列:

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