【发布时间】:2016-08-08 14:15:31
【问题描述】:
我有 3 张桌子 - EVENT、MEMBER、RANK。对于特定事件(例如 EVENT01),我需要显示最佳结果(来自 RANK)及其所属的成员,最简单的方法是什么?我下面的代码似乎选择了最小的数字,但重复了自己并声称其他成员得到了相同的结果。
预期输出:
EVENT_ID EVENT_TYPE EVENT_NAME MEMBER_ID MEMBER_NAME RESULT
event01 swimming 100m mem001 John Smith 10
到目前为止的代码:
SELECT E.EVENT_ID, E.EVENT_TYPE, E.EVENT_NAME, R.MEMBER_ID, M.MEMBER_FIRSTNAME, M.MEMBER_LASTNAME, (SELECT MIN(RESULT)
FROM RANK WHERE E.EVENT_ID = 'EVENT003' ) AS AVG_INCOME_ALL_CLUBS
FROM EVENT E, RANK R, MEMBER M
WHERE E.EVENT_ID = R.EVENT_ID
AND R.MEMBER_ID = M.MEMBER_ID
ORDER BY MEMBER_ID;
【问题讨论】:
-
不是每个赛事都有获胜者吗?为什么不能在 R.RESULT = 1 上简单地过滤(使用 WHERE 子句)?