mysql - 最大日期与中间表

标签 mysql date max

我无法得到正确的结果。我有 4 张 table :

table: Aluno
id_aluno    nome
1           Bruno
2           Carlos

table: Serie
id_serie    id_aluno    descricao
1           1           Tipo A
2           1           Tipo B
3           2           Tipo A

table: Treino
id_treino   id_serie    data
1           1           2015-12-10
2           2           2015-12-12
3           3           2015-12-10

table: Avaliacao
id_avaliacao   id_aluno   data_avaliacao
1              1          2015-12-07
2              1          2015-12-01
3              2          2015-12-05
4              2          2015-12-04

我想要以下结果:

nome     descricao    data          data_avaliacao
Bruno    TIPO B       2015-12-12    2015-12-07
Carlos   TIPO A       2015-12-10    2015-12-05

问题是 GROUP BY 子句应该有列“id_aluno”,但它不是具有日期的表的外键。它们之间有一个中间表(系列)。 我还有另一张表(avaliacao),我也想要最大日期,但是当我将它们全部加入时,我得到了 aluno 的多个结果。

我尝试过的查询:

SELECT a.nome, s.descricao, t.data, aa.data_avaliacao FROM Aluno a JOIN Serie s ON s.id_aluno = a.id_aluno JOIN Treino t ON t.id_serie = s.id_serie JOIN Avaliacao aa ON aa.id_aluno = a.id_aluno WHERE t.data = SELECT MAX(t1.data) FROM Aluno a1 JOIN Serie s1 ON s1.id_aluno = a1.id_aluno JOIN Treino t1 ON t1.id_serie = s1.id_serie WHERE s1.id_aluno = s.id_aluno )

最佳答案

如果我给你这个,你能算出另一部分吗?

SELECT a.nome
     , s.descricao
     , t.data
     , v.data_avaliacao
  FROM aluno a
  JOIN serie s
    ON s.id_aluno = a.id_aluno
  JOIN treino t
    ON t.id_serie = s.id_serie
  JOIN 
     ( SELECT s.id_aluno
            , MAX(t.data) max_data 
         FROM serie s 
         JOIN treino t 
           ON t.id_serie = s.id_serie 
        GROUP 
           BY id_aluno
     ) x
    ON x.id_aluno = s.id_aluno
   AND x.max_data = t.data
  JOIN avaliacao v
    ON v.id_aluno = a.id_aluno;

关于mysql - 最大日期与中间表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34421185/

相关文章:

php - 根据用户输入更新mysql数据库

mysql - 使用新列中更新记录的历史管理员更新表

excel - 在Excel VBA中提取重复出现的数组的最大值

c++ 查找主操作系统目录

php - 使用 PHP 和 AJAX 将数据从表单加载到 MySQL

php - ORDERING mysqli/PHP,如何添加更多排序依据?

java智能日期解析器

Java日期给我格式mm/dd/yyyy,其中jquery datepicker日期格式是dd/mm/yyyy

mysql - MONTH() 的 SUM 未正确计算

mysql - 当我们使用嵌套查询 for max(cgpa) 时,我们可以使用 select * 吗