gpt4 book ai didi

mysql - 更新SQL内部连接成功但更新所有列表

转载 作者:行者123 更新时间:2023-11-29 10:02:29 25 4
gpt4 key购买 nike

当我使用 select 时,我有两个与 code_id 相关的表(katalan 和 dominus)

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

就我而言,我想仅在以下情况下专门更新 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 LA cccc@bcde.com
2 hasan 222 NY bbbb@bcde.com
3 david 222 NY aaaa@bcde.com

注意:我对这种情况的问题做了简单的解释。

在这种情况下,我只想更新地址,其中 No_list = 1 的 1 个列表。感谢您的帮助。

最佳答案

您的更新查询语法错误。您不能使用 from在更新查询中。 MySQL 中更新查询语法的基本要点:Update <tables with joins> Set <field = value> Where <conditions>

完整的语法和描述,可以阅读 MySQL doc :

UPDATE [LOW_PRIORITY] [IGNORE] table_reference
SET assignment_list
[WHERE where_condition]
[ORDER BY ...]
[LIMIT row_count]

value:
{expr | DEFAULT}

assignment:
col_name = value

assignment_list:
assignment [, assignment] ...

请尝试以下操作:

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';

关于mysql - 更新SQL内部连接成功但更新所有列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52629092/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com