以下是我用于获取团队信息的查询。但是,我还想显示与团队分配的两个用户名。使用两个表设置数据库。一个包含所有用户信息,另一个(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
答案 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;