在一对多关联查询中,遇到重复数据的问题,这不是我们想要的结果,下面就是两种常用的去重方法。
1、distinct方法去重
$data=$test_data->Distinct(true)->field('descriprion')->order('description desc')->select();
2、group方法去重
$items = Suspect::alias('s') ->leftJoin("activity a","a.suspect_id = s.id") ->field("s.*,a.id as activity_id") ->group('id') ->select();
Mysql语句:
SELECT `s`.*,a.id as activity_id FROM `suspect` `s` LEFT JOIN `activity` `a` ON `a`.`suspect_id`=`s`.`id` GROUP BY `id`
对于两种去重方式:
1、distinct去重、简单易用,但只能对于单一字段去重,并且最终的结果也仅为去重的字段,实际应用价值不是特别大。
2、group去重,最终的显示结果为所有字段,且对单一字段进行了去重操作,效果不错,但最终显示结果除去去重字段外,按照第一个字段进行排序,可能还需要处理。
原文链接:https://blog.csdn.net/qq422431474/article/details/79582239