mysql左连接null值丢失、条件不起作用的问题
一、问题
在mysql左连接时,
- 写上where时,空值丢失,数据减少
- 不写where,只用and连接,主表条件不起作用,数据变多。
二、错误复现
1、当使用where+条件时,左连接查询空值丢失
SELECT u.id, u.authority_type, sum(complete_value)
FROM USER as u LEFT JOIN `performance_assess` p
ON p.user_id = u.id
where p.assess_time>'2020-09-01 12:00:00'
and u.authority_type = "USER"GROUP BY u.id
结果:空值丢失,数据变少
2、当使用and连接条件而不写where,左表条件不其作用
SELECT u.id,u.authority_type,sum(complete_value)
FROM USER as u LEFT JOIN `performance_assess` p
ON p.user_id = u.id
and p.assess_time>'2020-09-01 12:00:00'
and u.authority_type = "USER"GROUP BY u.id
结果:空值存在,但user的条件不起作用,数据变多
三、解决办法
通过on … and … where … 实现,
- on后面跟连接条件
- and后面跟从表条件:空值会被保留,多个从表条件时就and …and …
- where后面跟主表条件:过滤主表数据, 多个主表条件时就where…and …
SELECT u.id,u.authority_type,sum(complete_value)
FROM USER as u LEFT JOIN `performance_assess` p
ON p.user_id = u.id
and p.assess_time>'2020-09-01 12:00:00'
where u.authority_type = "USER"GROUP BY u.id
结果:
mysql左连接null值丢失、条件不起作用的问题相关推荐
- mysql 左连接 on 多个条件_数据库左右连接on后的限制条件问题
测试环境: MySQL 5.7.19 HeidiSQL 9.3 数据库界面连接工具(挺好用的) 碰到的问题是: Select * from t1 left outer join t2 on t1.id ...
- mysql左连接丢失null值的问题
一.前言 如题所示,我们有的时候直接使用左连接查询,当右表不存在该数据的时候,是可以查出带有null的列.可是当在where条件中有右表相关的筛选条件时,我们惊奇的发现查询的结果不带null值了,换句 ...
- MySQL 左连接、右连接、内连接
left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录 inner join(等值连接) ...
- 简单的mysql左链接_简单谈谈mysql左连接内连接
前言 最近忙着开发x省冷链追溯系统,天天干到晚上十一点多才回到家,周末也加班,没啥时间写博客,闲下来再好好写写 业务: sql语句统计出入库数据. 问题:只统计了X端入库单. 原因: 没有发现X端的数 ...
- MySQL什么用于左连接_简单谈谈mysql左连接内连接
前言 最近忙着开发x省冷链追溯系统,天天干到晚上十一点多才回到家,周末也加班,没啥时间写博客,闲下来再好好写写 业务: sql语句统计出入库数据. 问题:只统计了X端入库单. 原因: 没有发现X端的数 ...
- mysql中与null值不能比较
在mysql中,选择某field为不等于某值的时候,使用<>符号.但查bug时发现该field为null的并不能查出来. 查原因为: null值不能与其他值进行比较,只能使用is null ...
- MySql左连接(left join)查询非常慢
MySql左连接(left join)查询非常慢 问题描述: 两张表:tb_buyer_account.b_ip. tb_buyer_account表中ip_id字段对应tb_ip表中主键id字段,两 ...
- MySQL左连接之后引起的排序问题
最近遇到一个问题,MySQL左连接之后对左连接表中的数据进行修改之后,数据的顺序发生了变化,并没有按照既定顺序进行排列,一番查询之后觉得需要记录一下 SELECT*FROM(SELECTt.tagCo ...
- Mysql左连接详解
我们在mysql做关联查询时,需要把两张表的数据查询 放入一张新的'虚拟表'中 这时候就需要左连接了 : 直接上代码 SELECT d.id,d.`bzid`,d.`bzpic`,d.`bzdetai ...
最新文章
- C# 栈 、队列的概念
- 基于visual Studio2013解决面试题之0804复杂链表
- 1.2.4 ORACLE_SID的含义
- python修改类属性值_python编程入门到实践:直接修改属性的值和通过方法修改属性的值...
- java 中required_通过实例学习Spring @Required注释原理
- NetBeans 7 Python 又回来了
- k8s之wsl2+kind+docker desktop搭建kubevela测试集群
- mysql主从同步slave_MySQL主从复制(Master-Slave)实践
- 解决opencv在pycharm中无代码自动提示的bug
- 用Python解压tgz文件
- 怎么使用starwind部署iscsi_服务器配置我该怎么选
- selenium控制浏览器操作
- PHP制作QQ微信支付宝三合一收款码
- java 16进制 负数_Java随笔:小心16进制负数
- python算法工程师简历_算法工程师岗位简历范文
- CV各领域牛人及资源-有些网页已很久没更新
- 四 微信公众号 基础参数说明
- HDU 1695(数论,筛选+素因子分解+容斥)
- WPF DataGrid 隐藏列
- JAVA高并发多线程必须懂的50个问题
热门文章
- Portal的认证方式
- 网络安全都需要考什么证书呢?
- Java 学习 Day08
- 使用Microsoft Visual Studio International Pack获得中文字符串的所有拼音组合(处理多音字)
- 用手机的同志们都来看看吧 有多少真相我们一直不知道 ……
- java写七星彩兑奖_【技术分享】Java Swing界面完成七星彩抽奖系统
- [C++] map集合的使用
- linux系统安装xhprof,xhprof扩展安装与使用
- 强化学习实践(2):Q Leaning
- WGS完整流程介绍(原始数据质控、数据预处理、变异检测、数据注释)