美文网首页
连接查询位置不同导致数据丢失

连接查询位置不同导致数据丢失

作者: 霡霂976447044 | 来源:发表于2021-08-30 17:03 被阅读0次
SELECT `t1`.`id` AS `device_id`, `t1`.`device_name`, SUM(`t2`.`ep_o`) AS `epo`
FROM `collect_device` AS `t1`
         LEFT OUTER JOIN `stat_hour` AS `t2` ON (((`t1`.`id` = `t2`.`collect_device_id`) AND
                                                  (`t2`.`stat_time` >= '2021-08-01 00:00:00')) AND
                                                 (`t2`.`stat_time` <= '2021-08-30 16:52:55.539177'))
WHERE ((`t1`.`calc_type` = 1) AND (`t1`.`energy_type` = 1))
GROUP BY `device_id`

on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。
结论:

过滤条件放在:

on后面:先根据条件过滤筛选,再连 生成临时查询结果
where后面:是先连接然生成临时查询结果,然后再筛选

注意:如果字段存在null或者2, x !=2 也同样不会只得到null

个人理解,左连接on加的字段会查出所有数据,但是你where过滤掉了这个on查出来的。

相关文章

  • 连接查询位置不同导致数据丢失

    on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。结论: 过滤条件放在: o...

  • python学习笔记-数据库06_连接查询

    连接查询可以实现多表的查询,当查询的字段数据来自不同的表就可以使用连接查询来完成连接查询可以分为:内连接查询左连接...

  • Oracle学习day-28:多表查询

    一、多表连接查询 1.多表连接语法 主要解决目标数据分布在不同的表中(如果目标数据不再一张表,可以通过多表连接查询...

  • mysql-数据查询语句-多表

    连接查询 连接查询,是关系数据库中最主要的查询,包括等值查询、自然连接查询、非等值查询、自身连接查询、外连接查询和...

  • SQL语句联合查询

    联合查询是指将多个不同的查询结果连接在一起组成一组数据的查询方式。联合查询使用UNION关键字连接各个SELECT...

  • redis哨兵主备切换的数据丢失问题:异步复制、集群脑裂

    一、两种数据丢失的情况 主备切换的过程,可能会导致数据丢失 (1)异步复制导致的数据丢失 因为master -> ...

  • Mysql学习笔记(5)-"数据库设计" 和

    目录: 1.数据库设计 2.关联查询 1.多表查询 2.内连接查询 3.左连接查询 4.右连接查询 一.数据库设计...

  • 数据仓库模型设计心得

    数据不丢失数据丢失,导致重新跑数据,统计不准确,建议要长期保留历史数据 数据不重复上游数据重复,会导致下游数据治理...

  • 查看postgres数据库连接数

    查询数据库允许的最大连接数: 查询结果: max_connections1000 查询数据库当前连接数脚本: 查询...

  • 软件缺陷的等级应如何划分

    3. 软件缺陷的等级应如何划分? 1)致命错误:造成系统崩溃、死机、死循环,导致数据库数据丢失,与数据库连接错误,...

网友评论

      本文标题:连接查询位置不同导致数据丢失

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