我有一个表Users,其中有一列MemberID
还有另一个称为UserMembers的表,该表为同一用户具有多个MemberID。
现在,我只需要使用UserMembers表中的1个值填充Users表MemberID,因此,如果它具有3个值,我需要最小值。
我试过了

UPDATE Users
SET MemberID = (SELECT DISTINCT m.MemberID FROM UserMembers
um INNER join Users u on  um.UserID = u.UserID
        ORDER BY um.CreatedDT ASC LIMIT 1);


但这不是正确的查询。任何帮助,将不胜感激

最佳答案

Derived Table中,可以从MemberID表中获得每个UserIDUserMembers最小值。使用Users将其连接到UserID表,并在Users表中设置此最小值。

UPDATE Users AS u
JOIN
(SELECT UserID, MIN(MemberID) AS minMemberID
 FROM UserMembers
 GROUP BY UserID
) AS dt
  ON dt.UserID = u.UserID
SET u.MemberID = dt.minMemberID

关于mysql - MySQL-根据另一个表的不同值更新一个表的行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53400723/

10-15 21:24