【问题标题】:mysql query with a max() of another table for each rowmysql 查询,每行都有另一个表的 max()
【发布时间】:2017-06-19 14:29:02
【问题描述】:

这是我的查询:

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 ="ben@test.be"

这个查询给出:

但我想要每个人的最后日期( max(p.date) )

(注意:有些人住在同一栋楼里,这就是为什么有些人有相同的地址)

有什么想法吗?

【问题讨论】:

    标签: mysql sql date 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 ="ben@test.be"
        Group By loc.id, loc.nom, loc.prenom, loc.num_tel, loc.num_fixe, bat.adresse,
         b.date_entree, b.date_sortie
    

    【讨论】:

    • 谢谢!这比我想象的要容易。您甚至可以按 loc.id 及其工作方式进行分组。
    猜你喜欢
    • 2013-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-02
    • 1970-01-01
    • 2021-09-17
    相关资源
    最近更新 更多