1. 程式人生 > >mysql 多表關聯一對多查詢最新的一條資料 深坑等你

mysql 多表關聯一對多查詢最新的一條資料 深坑等你

注意核心要點:
yii2 多表關聯查詢單欄位去重沒有生效
原因是
單表的唯一查詢用:distinct
多表的唯一查詢用:group by –但是注意下面的坑
參考: https://blog.csdn.net/lkforce/article/details/52598155
GROUP BY 和 ORDER BY一起使用時,ORDER BY要在GROUP BY的後面。
寫的順序:select … from… where….group by… having… order by..
執行順序:from… where…group by…having…. select … order by…

所以在order by拿到的結果裡已經是分組的完的最後結果。
由from到where的結果如下的內容。

到group by時就得到了根據category_id分出來的多個小組

到了select的時候,只從上面的每個組裡取第一條資訊結果會如下

(特別注意:)即使order by也只是從上面的結果裡進行排序。並不是每個分類的最新資訊。

另一個部落格查詢正確, 不過是單表查詢, 我沒有去驗證對應的其他欄位是否正確
參見 https://blog.csdn.net/zhangqun23/article/details/52904707
我想列出每個部門最高薪水的結果,sql語句如下:
SELECT DEPT, MAX(SALARY) AS MAXIMUM
FROM STAFF
GROUP BY DEPT

解決
由於進度問題, 用exists解決失敗, 最後解決如下
如果想找最新的資料,則需要使用group by和max。找出最新資料的id, 採用低效的 in 對查詢的最新資料的id進行再次查詢篩選.
參見 https://blog.csdn.net/john_hongming/article/details/42742965