美文网首页
union union all区别+使用场景

union union all区别+使用场景

作者: swoft_ | 来源:发表于2019-07-21 22:04 被阅读0次

使用场景

场景说明:

  1. 首页消息提醒需要对多个表数据进行统计。
  2. 根据用户角色进行区分,如果不存在相应的权限不统计。
$sql = 'select 1 as d_key ';
if (in_array('权限码1', $codes)) {
    $key[] = 'key1';
    $sql .= " union all select count(*)  from `table1` as a  where channel=".GlobalUtil::$channel." and status=".OrderService::audit_pass_one;
}
if (in_array('权限码2', $codes)) {
    $key[] = 'key2';
    $sql .= " union all select count(*)  from `table2` as b  where channel=".GlobalUtil::$channel." and status=".OrderService::audit_pass_two;
}
if (in_array('权限码3', $codes)) {
    $key[] = 'key3';
    $sql .= " union all select count(*) from `table3` where channel=".GlobalUtil::$channel." and status=".SellFianceService::settlement_status_1;
}
if (in_array('权限码4', $codes)) {
    $key[] = 'key4';
    $sql .= " union all select count(*)  from `table4` where channel=".GlobalUtil::$channel." and status=".SellFianceService::settlement_status_3;
}
$res_data  = [];
$db_res    = DB::select($sql);
foreach ($db_res as $k => $item){
    if($k == 0) continue; //去除第一个默认值
    $res_data[$key[$k - 1]] = $item->d_key;
}
return $res_data;

//如果使用union如果存在相同数据会去重。所以一定要使用union all

区别

UNION和UNION ALL关键字都是将两个结果集合并为一个,但这两者从使用和效率上来说都有所不同。

1、对重复结果的处理:UNION在进行表链接后会筛选掉重复的记录,Union All不会去除重复记录。

2、对排序的处理:Union将会按照字段的顺序进行排序;UNION ALL只是简单的将两个结果合并后就返回。

从效率上说,UNION ALL 要比UNION快很多,所以,如果可以确认合并的两个结果集中不包含重复数据且不需要排序时的话,那么就使用UNION ALL。

UNION 去重且排序
UNION ALL 不去重不排序

相关文章

  • union union all区别+使用场景

    使用场景 场景说明: 首页消息提醒需要对多个表数据进行统计。 根据用户角色进行区分,如果不存在相应的权限不统计。 ...

  • SQL union和union all操作符

    一、union和union all区别 union会去重,union all不会去重 二、SQL union操作符...

  • union与union all

    union和union all的区别是,union会自动压缩多个结果集合中的重复结果,而union all则将所有...

  • SQL知识点

    0. SQL基础 inner join和left join的区别 union和union all的区别 union...

  • SQL面试题,快问快答!

    1. UNION ALL 与 UNION 的区别 UNION和UNION ALL关键字都是将两个结果集合并为一个。...

  • union 与 union all 区别

    union all (SELECTsc.IntelUserCode,sc.StartDate,sc.EndDate...

  • union比union all区别

    union去重并排序,union all直接返回合并的结果,不去重也不排序;union all比union性能好;

  • mysql 合并结果集

    mysql查询时经常会把多个查询结果集进行合并。主要使用UNION 和 UNION ALL。两者区别如下: 对查询...

  • SQL [UNION]和[UNION ALL]用法

    原文链接:SQL UNION和UNION ALL用法 一、概述 union和union all都用于合并多个查询,...

  • 字节飞书后端一面凉经

    1.mybatis中#{}和¥{}区别2.union和union all区别3.redis分布锁4.Integer...

网友评论

      本文标题:union union all区别+使用场景

      本文链接:https://www.haomeiwen.com/subject/gltblctx.html