mysql - INNER JOIN 后从多个表中获取最大日期

标签 mysql sql greatest-n-per-group

我有下面两个表

table 1)
ID |  HOTEL ID | NAME 
1       100      xyz 
2       101      pqr
3       102      abc


table 2)
ID | BOOKING ID | DEPARTURE DATE | AMOUNT
1         1       2013-04-12        100
2         1       2013-04-14        120
3         1       2013-04-9          90
4         2       2013-04-14        100
5         2       2013-04-18        150
6         3       2013-04-12        100

我想在 mysql 中获取 reault,以便它从表 2 中获取具有 MAX DEPARTURE DATE 的行。

ID | BOOKING ID | DEPARTURE DATE | AMOUNT
2         1       2013-04-14        120
5         2       2013-04-18        150
6         3       2013-04-12        100

最佳答案

SELECT  b.ID,
        b.BookingID,
        a.Name,
        b.departureDate,
        b.Amount
FROM    Table1 a
        INNER JOIN Table2 b
            ON a.ID = b.BookingID
        INNER JOIN
        (
            SELECT  BookingID, MAX(DepartureDate) Max_Date
            FROM    Table2
            GROUP   BY BookingID
        ) c ON  b.BookingID = c.BookingID AND
                b.DepartureDate = c.Max_date

关于mysql - INNER JOIN 后从多个表中获取最大日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16082238/

相关文章:

mysql - 如何在 mysql 的查询中定义可选约束

java - 带有 CONTAINS 查询的 PreparedStatement

MYSQL:限制每个 whereIn() 的行数

sql - 在 Postgresql 中查找最近的不同记录并按 created_at 排序

mysql - 在子查询中加入 `greatest-n-per-group` 和 SUM

具有固定行数的 MySQL 表?

mysql - 在 MySQL 中转换日期会返回前一个日期

php - 多个 PHP MySQL 插入

c# - 异常 : Ambiguous column name

sql - 带 where 子句的 Left Join 查询