2017-06-19 59 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