Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 更新时无法从表中获取id_Mysql - Fatal编程技术网

Mysql 更新时无法从表中获取id

Mysql 更新时无法从表中获取id,mysql,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.Con

我不能相信 我正在使用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 这条线 所以我找不到正确的身份证


您能帮助我吗?

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

为了使其正常工作,您需要为
内部联接指定一个适当的
ON
条件。例如,如果
company
表的主键是
id
列:

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

除A.company\u id=C.id外,其他一切都正常。你是什么意思?首先:请用实际合适的标签来标记问题。这与PHP没有任何关系。接下来,请解释一下你想要实现的目标。您的查询看起来非常复杂,我相信可以简化一些。您会遇到什么类型的错误?我们也不明白您为什么使用mysql;)您的示例输入和输出是什么?请解释一下你询问的目的。这将有助于理解。是的,我理解,但我需要在公司中写入帐户-->id-->公司id,如果我将在ON语句中使用C.id=A.company\U id,它将在“内部联接”中的“不按我所知写入ON”语句用作standart语句中的“WHERE”。例如,从公司中选择C.name作为C,将帐户作为WHERE C.id=A.company\U id