【发布时间】:2015-07-24 23:12:36
【问题描述】:
这是我的问题
我有这张表叫list:
||client||name||address||zone||block||day||document||
并且list 也从名为document 和client 的列中从另一个表payments 中获取document 的更新。
问题是当我运行这个查询时
UPDATE list SET document=(SELECT document FROM payments WHERE list.client=payments.client)
当document 值针对payments 表上的不同client 值重复时,我收到错误Subquery returns more than 1 row。显然我得到了错误,因为该值是重复的,但我需要用相应的 client 填充 document 列,即使对于不同的客户端有相同的 document。
在这种情况下应该如何查询?如果它存在,当然。
谢谢。
【问题讨论】:
-
是的,我知道,是重复值,但我的意思是,我需要设置
document甚至为不同的client重复。 -
下一个问题是:为什么要复制这个值?除非您正在迁移数据库结构,否则这样的复制听起来像是有缺陷的设计。
-
@RandomSeed 该文件类似于收据或付款文件编号,但对于我与之合作的公司,他们为不同的客户使用相同的文件编号,因此他们想创建一个报告表他们可以知道客户使用的最后一个文件编号是什么。
-
请用自然语言解释你想做什么。我觉得您的查询非常错误,以至于误导了我们。
-
好的。付款表包含不同客户(或客户)所做的所有付款。列表只是用 PHPbuilder 创建一个报告,所以,当我去 PHP 网页获取列表时,服务器运行一个带有查询的脚本,但它给了我错误。我知道是因为不同客户的付款具有相同的文件编号。但是我需要一个查询来更新和设置文档编号,即使同一个文档有不同的客户端。
标签: mysql sql sql-update