从同一个团队获取两个用户名

时间:2014-09-14 23:59:41

标签: mysql

以下是我用于获取团队信息的查询。但是,我还想显示与团队分配的两个用户名。使用两个表设置数据库。一个包含所有用户信息,另一个(userLeagues)包含一组ID,例如userID和teamID。

示例 - userLeagues

leagueID |  userID  | teamID
1         1      1
1         5      1
1         10     2
2         1      1
2         8      1

这是我想要实现的结果。

leagueID |  TeamID |   userID1|  userID1
1         1           1         5

然后将其输出为:

leagueID |  TeamID  |   userID1  |  userID1

1         Mad Racing  driver 1    dirver 5

这是我到目前为止获得团队的代码,但我如何让同一个团队的干衣机及其用户名相关联?

SELECT
  u.username
  ,   t.teamName
  ,   t.teamImage    
  /* File Table */
  ,   f.fileType    
FROM
  userleague ul
  INNER JOIN users u ON u.userID = ul.userID
  LEFT JOIN teams t ON t.teamID = ul.teamID
  LEFT JOIN fileType f ON f.fileID = t.fileID                                           
WHERE leagueID = 1     
GROUP BY ul.teamID 

1 个答案:

答案 0 :(得分:0)

如果只有两个值,则可以使用min()max()执行此操作:

SELECT t.teamName, t.teamImage, f.fileType,
       min(u.username) as user1,
       (case when max(u.username) > min(u.username) then max(u.username) end) as user2   
FROM userleague ul INNER JOIN
     users u
     ON u.userID = ul.userID LEFT JOIN
     teams t
     ON t.teamID = ul.teamID LEFT JOIN
     fileType f
     ON f.fileID = t.fileID                                           
WHERE leagueID = 1     
GROUP BY t.teamName, t.teamImage, f.fileType;