2017-06-19 63 views
1

這裏是我的查詢:MySQL查詢與另一個表的MAX()的每一行

SELECT loc.id, loc.nom, loc.prenom, loc.num_tel, loc.num_fixe, bat.adresse, b.date_entree, b.date_sortie, p.date FROM locataires AS loc, bail AS b, apparts AS ap, batiments as bat, clients as cli, paye as p WHERE loc.id = b.idloc AND b.idappart = ap.id AND ap.idbat = bat.id AND bat.idcli = cli. id AND loc.id = b.idloc AND ap.id = b.idappart AND p.idloc = loc.id AND cli.email ="[email protected]" 

這個查詢得到:

enter image description here

但我想最後日期(MAX( )(每個人都住在同一棟大樓裏,這就是爲什麼一些人有同一個地址)

有什麼想法嗎?

回答

1

試試這個。 Max(p.date)Group By在所有其他列上。

SELECT loc.id, loc.nom, loc.prenom, loc.num_tel, loc.num_fixe, bat.adresse, 
    b.date_entree, b.date_sortie, MAX(p.date) as Date 
    FROM locataires AS loc, bail AS b, apparts AS ap, 
    batiments as bat, clients as cli, paye as p 
    WHERE loc.id = b.idloc AND b.idappart = ap.id AND ap.idbat = bat.id 
AND bat.idcli = cli. id AND loc.id = b.idloc 
AND ap.id = b.idappart AND p.idloc = loc.id 
AND cli.email ="[email protected]" 
    Group By loc.id, loc.nom, loc.prenom, loc.num_tel, loc.num_fixe, bat.adresse, 
    b.date_entree, b.date_sortie 
+0

謝謝!這比我想象的更容易。你甚至可以通過loc.id和它的工作進行分組。 – BenoHiT