• ThinkPHP使用distinct和group by去重复的数据


    在一对多关联查询中,遇到重复数据的问题,这不是我们想要的结果,下面就是两种常用的去重方法。 

    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

  • 相关阅读:
    今年暑假不AC
    亲和数
    改革春风吹满地
    hdu人见人爱A^B
    男人必看的10部电影
    富人和穷人之间的经典差异
    今日十句英文
    看透一个人起码要看的。
    人生经典20句
    解决ubuntu中mysql中文乱码问题
  • 原文地址:https://www.cnblogs.com/bushui/p/13895938.html
Copyright © 2020-2023  润新知