我无法获得正确的结果。我有4个表:MAX日期与中间表
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”,但它不是它有表的外键日期。他们之间有一个中间表(serie)。 我还有另一张桌子(avaliacao),我也想要max DATE,但是当我加入他们的时候,我得到了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)
那你试试? – Strawberry
SELECT a.nome, s.descricao, t.data,aa.data_avaliacao FROM Aluno一个 JOIN意甲小号 ON s.id_aluno = a.id_aluno JOIN Treino吨 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甲级S1 ON s1.id_aluno = a1.id_aluno JOIN Treino T1 在T1 .id_serie = s1.id_serie WHERE s1.id_aluno = s.id_aluno ) –
请相应编辑您的问题。 – Strawberry