我想要做的是从数据库中选择一个特定舞者组的所有内容,然后查找每个舞蹈的最新日期并仅显示这些。
请参阅附图,了解我希望从数据库返回的结果(大红色箭头)。在这个例子中,单个跳汰机在9月11日没有跳舞但是我需要最后一次跳舞(第10次)所以我可以计算舞者在所有舞蹈中的当前水平。
答案 0 :(得分:1)
尝试
SELECT t.*
FROM table1 t JOIN (
SELECT dancer_id, dance, MAX(date) date
FROM table1
GROUP BY dancer_id, dance
) q ON t.dancer_id = q.dancer_id
AND t.dance = q.dance
AND t.date = q.date
示例输出:
| id | dancer_id | date | dance | level | placed | venue | |-----|-----------|-----------------------------|------------|-------|--------|--------| | 143 | 130 | September, 10 2016 00:00:00 | Single Jig | 1 | 4 | (null) | | 146 | 130 | September, 11 2016 00:00:00 | Reel | 2 | 5 | (null) | | 147 | 130 | September, 11 2016 00:00:00 | Light Jig | 2 | 4 | (null) | | 148 | 130 | September, 11 2016 00:00:00 | Slip Jig | 2 | 4 | (null) |