注意核心要点:
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