2016-09-11 45 views
-1

我想要做的是从数据库中为特定舞者组选择所有内容,然后查找每个舞蹈的最新日期并仅显示这些日期。根据特定日期和标准选择数据MYSQL

查看附加图片的结果(大红色箭头)我想从数据库中返回。我举这个例子,9月11日没有跳舞,但我需要最后一次跳舞(10日),这样我就可以计算舞者在所有舞蹈中的当前水平。

example data I would want

回答

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 

这里是一个SQLFiddle

样本输出:

 
| 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) | 
+0

感谢那个伟大的工作。 – adamprocter