Mysql 更新SQL内部联接成功,但更新所有列表

Mysql 更新SQL内部联接成功,但更新所有列表,mysql,sql-update,Mysql,Sql Update,当我使用select时,我有两个表katalan和dominus,它们在code_id中有关系 select No_list, name, a.code_id, b.address, email from katalan a inner join dominus b on a.code_id=b.code_id where b.address='NY' order by No_list; 如下所示: No_list name a.code_id b.address email 1

当我使用select时,我有两个表katalan和dominus,它们在code_id中有关系

select No_list, name, a.code_id, b.address, email
from katalan a inner join dominus b on a.code_id=b.code_id
where b.address='NY'
order by No_list;
如下所示:

No_list name    a.code_id   b.address   email
1       ahmed   222           NY        cccc@bcde.com
2       hasan   222           NY        bbbb@bcde.com
3       david   222           NY        aaaa@bcde.com
No_list name    a.code_id   b.address   email
1       ahmed   222           LA        cccc@bcde.com
2       hasan   222           NY        bbbb@bcde.com
3       david   222           NY        aaaa@bcde.com
code_id    address  
 221          LA
 222          NY
在我的情况下,我只想在以下情况下更新b.address

No_list='1'
这是我的疑问

UPDATE b 
set b.address='LA' 
from dbo.katalan as a 
inner join dbo.dominus as b 
on a.code_id=b.code_id
where a.No_list='1';
但当我更新后,显示如下

No_list name    a.code_id   b.address   email
1       ahmed   222           LA        cccc@bcde.com
2       hasan   222           LA        bbbb@bcde.com
3       david   222           LA        aaaa@bcde.com
选择时在dominus中显示我的条件表

select * from dominus where code_id='222'
我的表格在更新后显示如下,更新前地址必须为“NY”:

code_id    address  
 222          LA    
当我进行更新时,期望仅更新1个列表,如下所示:

No_list name    a.code_id   b.address   email
1       ahmed   222           NY        cccc@bcde.com
2       hasan   222           NY        bbbb@bcde.com
3       david   222           NY        aaaa@bcde.com
No_list name    a.code_id   b.address   email
1       ahmed   222           LA        cccc@bcde.com
2       hasan   222           NY        bbbb@bcde.com
3       david   222           NY        aaaa@bcde.com
code_id    address  
 221          LA
 222          NY
注: 我对这种情况下的问题做了简单的解释


在这种情况下,我只需要更新地址1个列表,没有列表=1。谢谢您的帮助。

您的更新查询语法错误。不能在更新查询中使用from。MySQL中更新查询语法的基本要点:更新集Where

完整的语法和说明,请访问:

请尝试以下操作:

UPDATE dbo.katalan AS a 
INNER JOIN dbo.dominus AS b ON a.code_id = b.code_id
SET b.address = 'LA' 
WHERE a.No_list = '1';

当我在dominus表的code_id中添加附加值时,问题就解决了,所以当我选择

select * from dominus;
显示如下记录:

No_list name    a.code_id   b.address   email
1       ahmed   222           NY        cccc@bcde.com
2       hasan   222           NY        bbbb@bcde.com
3       david   222           NY        aaaa@bcde.com
No_list name    a.code_id   b.address   email
1       ahmed   222           LA        cccc@bcde.com
2       hasan   222           NY        bbbb@bcde.com
3       david   222           NY        aaaa@bcde.com
code_id    address  
 221          LA
 222          NY
和简单的查询更新

update katalan
set code_id ='221'
where No_list='1';
干劲十足

No_list name    a.code_id   b.address   email
1       ahmed   221           LA        cccc@bcde.com
2       hasan   222           NY        bbbb@bcde.com
3       david   222           NY        aaaa@bcde.com

谢谢您的帮助,但我知道我的表中的关系id似乎是错误的。我会自己回答我的问题。