1. 程式人生 > >SQL 語句 一對多關係,根據一查詢多裡面對應一的最新的一條記錄

SQL 語句 一對多關係,根據一查詢多裡面對應一的最新的一條記錄

上面有點繞,其實就是需要主從id匹配,然後取得從表和主表匹配的每一組資料中最新的一條

思路

首先需要連表查詢,可以用in , exists , 連線查詢

我用的是連線查詢

其次需要把字表根據主表id分組

然後查詢出聯合資料。

上面是正常流程,但是就是在這裡出現了問題,group by 函式分組查詢出來的記錄是預設給你把當前表order by 以後的第一條記錄

select * from a group by a.user_id;

這樣返回的是 order by a 表之後的第一條記錄

如果想返回自己想要的資料,比如一組中最新的資料則可以

select * from (select * from a order by a.create_time) group by a.user_id

這樣我們先把表給排序一下之後,就能得到正確的資訊了