我想添加第三个INNER JOIN到一个SELECT查询,其中第三个INNER JOIN需要查找该第三个表中的值,该值需要与主SELECT查询中MAX + GROUP BY构造的结果。这可能是不可能的,我不知道。我不能让它:-)MySQL内部加入子查询(详细)
例
TableA
User - Score
userA - 10
userB - 42
userC - 32
userB - 42
userB - 18
userD - 12
userB - 65
工作。
Table B
User - Color
userA - Green
userB - Yellow
userC - Blue
在这两个表我使用
SELECT
MAX(TableA.Score) AS MaxScore,
TableB.Color
FROM TableA
INNER JOIN TableB
ON TableA.User = TableB.User
GROUP BY TableA.User
的输出在这里工作得很好,是
User - MaxScore - Color
UserA - 10 - Green
UserB - 65 - Yellow
UserC - 32 - Blue
现在,我有一个单独的表,所有的成绩获得名称。
TableC
Score - Name
5 - Quite Low
10 - OK
25 - Not bad
32 - Fairly good
50 - Well done
65 - Excellent
我尝试做的是得到查询结果读取...
User - MaxScore - Name - Color
UserA - 10 - OK - Green
UserB - 65 - Excellent - Yellow
UserC - 32 - Fairly Good - Blue
我的查询会是这个样子......
SELECT
TableA.User
MAX(TableA.Score) AS MaxScore,
TableC.Name,
TableB.Color
FROM TableA
INNER JOIN TableB
ON TableA.User = TableB.User
INNER JOIN TableC
ON TableC.Score = (SELECT MAX(TableA.Score) AS MaxScore FROM Table A GROUP BY TableA.User) ThisSubQueryName
GROUP BY TableA.User
我的问题显然是与语法表C的INNER JOIN,INNER JOIN携带该子查询。我不知道该怎么做,或者甚至有可能。
期待您的智慧。
感谢:-)
荷兰
延迟歉意,scaisEdge和Uueerdo。我陷入了其他职责,只是今天回到了挑战中。你的答案都很出色。我精心编辑了我的广泛查询,并在第一时间让它工作100%。非常感谢!做得好 :-) –