2

我正在尝试选择一个与另一列中的最小数字相对应的值,然后将其用于另一个表中的 SET 。

但它告诉我“这里不允许使用群组功能”

还有其他方法可以做到这一点吗?

UPDATE team 
SET OWNERID = (SELECT USERID
         FROM teamuser
         WHERE MIN(CREATETIME) 
         AND teamId = 5) 
WHERE teamId = 5

(team 和 teamuser 表都有一个列 teamId)。

4

2 回答 2

2

你应该做

UPDATE team 
SET OWNERID = (SELECT USERID
         FROM TEAMUSER 
         WHERE CREATETIME = (select min(CREATETIME) from TEAMUSER)
         AND teamId = 5
)
WHERE teamId = 5

您不能在 where 子句中使用 agreggate 函数,只能在 group by 之后在 selects 或 Have 子句中使用它

于 2013-01-29T17:42:58.793 回答
2
UPDATE team 
SET OWNERID = (SELECT USERID
         FROM TEAMUSER 
         WHERE CREATETIME = (SELECT MIN(CREATETIME) FROM TEAMUSER WHERE teamId = 5)
         AND teamId = 5) 
WHERE teamId = 5
于 2013-01-29T17:43:37.730 回答