gpt4 book ai didi

mysql更新查询不适用于不同的列

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

花了几个小时在堆栈上搜索解决方案后,我似乎无法得到正确的答案。

我有 2 个表:“修复”和“关系”
在“repairs”表中,有 4 个列,名为“repair_external_supplierID”、“relation_id”、“cliendID”和“supplierID”。 (除了ID列)
在表“关系”中,我有 2 列,名为“sRelationNumber”和“sCustomerNumber”。 (除了ID列)
“repairs”中的“supplierID”为空,需要填充“Relation”中“ID”列的数据,其中“repairs”中的“repair_external_supplierID”与“relation”中的“sRelationNumber”相匹配
“repairs”中的“clientID”也是如此,当“repairs”中的“relation_id”列与“relation”中的“sCustomerNumber”列匹配时,必须填写该字段

这是代码:

/*--SET SUPPLIER ID --*/
UPDATE repairs
SET supplierID = (
SELECT
id
FROM
relation
WHERE
relation.sRelationNumber = repairs.repair_external_supplierID
)
WHERE
supplierID = '' OR supplierID IS NULL;

/*--SET CLIENT ID --*/
UPDATE repairs
SET clientID = (
SELECT
id
FROM
relation
WHERE
relation.sCustomerNumber = repairs.relation_id
)
WHERE
clientID = '' OR clientID IS NULL;

由于某种原因,第一个查询按计划工作,第二个查询返回“子查询返回超过 1 行”

这是为什么?

最佳答案

这是我的表格的内容

RELATION
id sCustomerNumber sSupplierNumber sRelationNumber
1 K12345 S456789 R123456
2 K98765 S456678 R987654
3 K15789 S957876 R854754
....

这些行都没有相同的数字
这就是我的 REPAIRS 表的样子:

REPAIRS
id clientID relation_id supplierID external_supplier_id
1 K12345 R123456
2 K98765 R987654
3 K15789 R854754

这应该变成:

REPAIRS
id clientID relation_id supplierID external_supplier_id
1 1 K12345 1 R123456
2 2 K98765 2 R987654
3 3 K15789 3 R854754

关于mysql更新查询不适用于不同的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45457845/

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