【问题标题】:SQL Result of SELECT more than one rowSELECT多行的SQL结果
【发布时间】:2015-12-06 17:37:13
【问题描述】:

我有类似于下面显示的代码,但我不断收到错误 - SELECT 的结果超过一行

UPDATE myDatabaseOne.myTableOne t1
SET firstFieldToCopy = (SELECT DISTINCT alternateField 
                        FROM myDatabaseTwo.myTableTwo t2
                        WHERE t1.firstFieldToCopy = t2.alternateField 
                          AND t2.Field <> t2.Field2); 

如何让它为 t1 中的每个值循环?

【问题讨论】:

  • 使用 php 从你的数据库中获取值并做任何你想做的事情
  • 请解释您要做什么。更新中的循环实际上没有意义。

标签: sql loops select db2 distinct


【解决方案1】:

听起来子查询为(某些)更新的记录返回了多个值。您应该更改它,以便保证只返回一个值,例如在选择中添加 TOP 1(尽管这确实或多或少会随机选择一个值)

【讨论】:

  • 是的,但问题是它并不总是一个单一的值。我正在将一个表中的列与另一个表中的列进行比较。两条记录的键必须相同。如果比较的值彼此不同,则该值将在原始表中的不同列中更新。
  • 我刚刚重新阅读了您的查询,我有点困惑您想要做什么。看起来您想用 myTableTwo.alternateField 更新字段 myTableOne.firstFieldToCopy,并且您正在根据 myTableOne.firstFieldToCopy = myTableTwo.alternateField 在 myTableTwo 中查找记录。这是否意味着您总是在复制 myTableOne 已有的值?
  • 也许您可以发布一些 myTableOne 和 myTableTwo 的示例数据(不必太多)并解释查询会对示例数据做什么?
  • 我需要添加其他条件以使记录更加独特
猜你喜欢
  • 2018-06-08
  • 1970-01-01
  • 1970-01-01
  • 2016-10-28
  • 1970-01-01
  • 2021-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多