2

別の列の最小数に対応する値を選択し、それを使用して別のテーブルに設定しようとしています。

しかし、それは私に「グループ機能はここでは許可されていません」と言っています

これを達成する他の方法はありますか?

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関数を使用できません。selectで使用するか、groupbyの後にHaving句で使用できます。

于 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 に答える