mysql一对多联表查询如何取多表里最新日期的数据
时间: 2024-01-27 11:04:51 浏览: 154
可以使用子查询和MAX函数来实现在一对多联表查询中获取多表最新日期的数据,具体步骤如下:
首先使用子查询获取每个主表记录对应的从表最新日期的数据,如下所示:
```
SELECT main_table.id, MAX(sub_table.date) AS latest_date
FROM main_table
LEFT JOIN sub_table ON main_table.id = sub_table.main_table_id
GROUP BY main_table.id
```
然后再将该子查询结果与主表进行联接,获取主表和从表的其他信息,如下所示:
```
SELECT main_table.*, sub_table.*
FROM main_table
LEFT JOIN sub_table ON main_table.id = sub_table.main_table_id
INNER JOIN (
SELECT main_table.id, MAX(sub_table.date) AS latest_date
FROM main_table
LEFT JOIN sub_table ON main_table.id = sub_table.main_table_id
GROUP BY main_table.id
) AS latest_sub_table ON main_table.id = latest_sub_table.id AND sub_table.date = latest_sub_table.latest_date
```
上述查询语句将会返回每个主表记录对应的从表最新日期的数据以及其他的从表和主表数据。
阅读全文