我無法獲得正確的結果。我有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