【问题标题】:Insert into w/ multiple selects giving ERROR 1242: Subquery returns more than 1 row插入到 w/ 多个选择给出错误 1242:子查询返回超过 1 行
【发布时间】:2015-04-11 12:52:46
【问题描述】:

我有表 foo1,其中包含 UserID、TimeStamp 列; foo2 包含列 userID、Level 和表 foo3 包含列 userID、Timestamp。

我想将来自 foo3 的所有行插入到 foo1 中,其中 UserID 存在于表 foo2 中。

我收到 ERROR 1242:子查询返回多于 1 行的以下内容

INSERT into foo1 (UserID,TimeStamp)
SELECT  
(SELECT UserID from foo2 as UserID),

(SELECT foo3.TimeStamp
from foo3
inner join foo2
ON foo3.UserID=foo2.UserID) as TimeStamp

【问题讨论】:

    标签: insert-into mysql-error-1242


    【解决方案1】:

    如果您想将 foo3 中的所有行插入到 foo1 中,其中 UserID 存在于表 foo2 中,那么您应该这样做:

    插入 foo1(用户 ID,时间戳) 选择 foo3.UserID,foo3.TimeStamp 来自 foo3 内连接 foo2 ON foo3.UserID=foo2.UserID

    【讨论】:

      猜你喜欢
      • 2011-12-13
      • 1970-01-01
      • 2013-01-05
      • 1970-01-01
      • 2013-02-27
      • 2018-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多