首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

mysql左连接丢失null值的问题

一、前言 如题所示,我们有的时候直接使用左连接查询,当右表不存在该数据的时候,是可以查出带有null的列。...好愧开语音泼猴 1574341554 12 饸烙面 1574587287 9 黄焖鸡米饭 1574340342 NULL 黄焖鸡1 NULL 这里能看到,我们查询出来的有带有NULL值的列...这里推测是因为sql的执行顺序,on表连接是先于where条件的,因此我们先on连接之后,产生了不符合条件的NULL列,然后NULL列被where条件给筛选掉了。...3、左连接之后加筛选条件 SELECT o.id , a.name, o.order_time FROM w_a_info AS a left JOIN w_order AS o ON...的方式,在连接时就附带上条件,此时不符合条件的数据列还是以null值的方式展现,并不会被后续的where筛选条件给筛选掉。

2.9K20

MySQ--语句大全

内连接:inner join 左连接:left join 右连接:right join 全连接: 左连接 union 右连接 replace 替换 拼接:concat、concat_ws、group_concat...2、like'[M-Z]inger' 将搜索以字符串 inger 结尾、以从 M 到 Z 的任何单个字母开头的所有名称(如 Ringer)。...拼接:concat、concat_ws、group_concat 内连接:inner join 左连接:left join 右连接:right join 全连接: 左连接 union 右连接...则删除old 四、多表查询 1.内连接、左连接、右连接、全连接 1、内连接:只取两张表有对应关系的记录(只拼两个表共有的) 左表 inner join 右表 on 条件 select *...右边没有就为空 左表 inner left 右表 on 条件 3、右连接:在内连接的基础上,保留右边的数据,左边没有就为空 左表 inner right 右表 on 条件 4、全连接:左右连接都有

1.7K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MySQL(4) 数据库增删改查SQL语句(整理集合大全)

    null的数据 模糊查询 %:表示0到多个字符,示例: where 列 like '%0'; //表示以0结尾 where 列 like '0%'; //表示以0开头 where 列 like...select * from 表1,表2 内连接:过滤为空的数据(查询的实际上是两张表数据的交集部分) 目的 ==》解决笛卡尔积现象,正确查询了需要的数据 select * from 表1,表2...,如果是多张表,则一直在join..on后依次添加join..on即可,inner关键字可被省略 外连接:左外连接、右外连接、全外连接 左外连接:以左边表为主,返回左边表中所有数据,若右表中无数据,则显示为....字段; //表1为左表,表2为右表,outer关键字可被省略 全外连接:返回涉及的多表中的所有数据,MYSQL中不支持该查询,仅限了解自连接:单表当作多表查询,直白的讲就是一张表中数据含有多种关系,....如果主键设置了自动递增,会从主键字段最大值开始插入数据 其他插入方式: insert into 表名(字段1,字段2) values(值1,值2),(值1,值2); //插入多条数据【MYSQL

    2.1K20

    MySQL从删库到跑路(五)——SQL查询

    查找邮箱是空值的记录 select * from s where email is null; 8、带AND的多条件查询 使用AND连接两个甚至多个查询条件,多个条件表达式之间用AND分开。...左连接的结果集包括 LEFT OUTER子句中指定的左表的所有行,而不仅仅是连接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。...全连接: 全连接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。MySQL不支持全外连接。...FROM子句中的表或视图可通过内连接或全连接按任意顺序指定;但是,用左或右向外连接指定表或视图时,表或视图的顺序很重要。...三、对查询结果排序 MySQL中可以通过在SELECT使用ORDER BY子句对查询的结果进行排序。 1、单列排序 ASC代表结果会以由小往大的顺序列出,而 DESC 代表结果会以由大往小的顺序列出。

    2.6K30

    mysql系列一

    > 在VALUES后给出列值,值的顺序和个数必须与前面指定的列对应 * INTERT INTO 表名 VALUES(列值1, 列值2) > 没有给出要插入的列,那么表示插入所有列。...> 值的个数必须是该表列的个数。 > 值的顺序,必须与表创建时给出的列的顺序相同。 2. 修改数据 * UPDATE 表名 SET 列名1=列值1, 列名2=列值2, ......SELECT * FROM emp WHERE ename LIKE '%阿%'; --> 千万不要认为上面语句是在查询姓名中间带有阿字的员工,因为%匹配0~N个字符,所以姓名以阿开头和结尾的员工也都会查询到...非空约束 * 因为某些列不能设置为NULL值,所以可以对列添加非空约束。...分类 * 内连接 * 外连接 > 左外连接 > 右外连接 > 全外连接(MySQL不支持) * 自然连接(属于一种简化方式) 2.

    97720

    SQL的区别及注意事项

    ,而oracle使用的是序列来生成,而且也不叫自增长 7.mysql不支持检查约束 sql 是一种脚本语言,不需要编译,由maysql直接解释运行,通过该语言,可以直接操控mysql DDL 使用create...结果集 select到from中间的内容就是结果集,是一张虚拟表 注意 如何优化查询速度 1.不要用* 2.不要in语句和not in语句 DQL的顺序 书写顺序:select * from tableName...且唯一 唯一约束可以为多个null,它只需保证存在的值唯一 连接查询 合并结果集:需要保证结果集字段一样 内连接 外连接 左外连接 右外连接 内连接 内连接是用来把满足某一个条件两个结果集合并起来...,并一一对应, 此时两张表中任意一张表中的关联字段在例外一张表关联字段中不存在, 那么该数据则不会显示 外连接 是以一张表为主表,另一张表为匹配表,主表的内容全部显示,然后用匹配表去匹配主表中的内容 在左外连接中...,左表为主表,右表为匹配表 在右外连接中,右表为主表,左表为匹配表

    70420

    MySQL 有这一篇就够(呕心狂敲37k字,只为博君一点赞!!!)

    4.使用空值查询 在MySQL中,使用 IS NULL关键字判断字段的值是否为空值。...请注意:空值NULL不同于0,也不同于空字符串 由于student表没有空值就不演示查询空值的了 查询sname不为空值的学生信息 MySQL命令: select * from student where...但是,有时还需要在返回查询结果中不仅包含符合条件的数据,而且还包括左表、右表或两个表中的所有数据,此时我们就需要使用外连接查询。外连接又分为左(外)连接和右(外)连接。...在使用左(外)连接和右(外)连接查询时,查询结果是不一致的,具体如下: 1、LEFT [OUTER] JOIN 左(外)连接:返回包括左表中的所有记录和右表中符合连接条件的记录。...如果左表的某条记录在右表中不存在则在右表中显示为空。

    2.7K20

    听说Mysql你很豪横?-------------分分钟带你玩转SQL高级查询语句(常用查询,正则表达式,运算符)

    为了能够更好的理解“group by”多个列“和”聚合函数“的应用,由表1到表2的过程中,增加一个虚构的中间表:虚拟表3。...在通过 count()计算有多少记录数时,如果遇到 NULL 值会自动忽略掉,遇到空值会加入到记录中进行计算。...运算符的优先级决定了不同的运 算符在计算过程中的先后顺序。级别高的运算符会先进行计算,如果运算符的级别相同, MySQL 会按照顺序从左到右依次进行计算。...区别于 MySQL 外连接是将表分为基础表和参考表,再依据基础表返回满足条件或不满足条件的记录。外连接按照连接时表的顺序来分, 有左连接和右连接之分。...也就是说在左连接查询中,使用 NULL 值表示右表中没有找到与左表中匹配的记录。左连接的查询原理如图所示。 ?

    4K30

    Python | Python学习之mysql交互详解

    之间的内容 select * from students where name rlike "^咸"; -- 查询 name 是以咸字开头的内容 空判断 判断是否为空 is null 举个栗子: select...* from students where height is null; 以上几种预算符优先级为: 优先级由高到低的顺序为:小括号、not、比较运算符、逻辑运算符。...,当年龄相同时 按照身高从高到矮排序 聚合函数 count(*)查询总数 max(列)表示求此列的最大值 min(列)表示求此列的最小值 sum(列)表示求此列的和 avg(列)表示求此列的平均值...right join(右连接查询):查询的结果为两个表匹配到的数据,右表特有的数据,对于左表中不存在的数据使用null填充 left join(左连接查询):查询的结果为两个表匹配到的数据,左表特有的数据...:连接的mysql主机的端口,默认是3306 database:数据库的名称 user:连接的用户名 password:连接的密码 charset:通信采用的编码方式,推荐使用utf8 connection

    1.2K21

    【MySQL学习】基础指令全解:构建你的数据库技能

    SQL通用语法: SQL 语句可以单行 或 多行书写,以分号结尾 SQL 语句可以使用 空格 / 缩进来增强语句可读性 MySQL 数据库的SQL语句不区分大小写,关键字一般建议使用大写 注释: 单行注释...4.2.2 NULL 约束 创建表时,可以指定某列不为空: 4.2.3 UNIQUE:唯一约束 指定id列为唯一的、不重复的: 4.2.4 DEFAULT:默认值约束 指定插入数据时,name列为空,默认值为未命名...左外连接 (LEFT JOIN) 左连接返回左表中的所有记录以及右表中匹配的记录。...(RIGHT JOIN) 右连接与左连接相反,它返回右表中的所有记录以及左表中匹配的记录。...要实现全外连接的效果,可以通过结合使用左连接和右连接并排除重复记录来模拟。

    15310

    【算法】将单向链表按某值划分成左边小、中间相等、右边大的形式

    实现一个调整链表的函数, 将表调整为左部分都是值小于 pivot 的节点, 中间部分都是值等于pivot的节点, 右部分都是值大于 pivot的节点。...总之,满足左部分都是小于3的节点,中间部分都是等于3的节点(本例中这个部 分为空),右部分都是大于3的节点即可。对某部分内部的节点顺序不做要求。 进阶题 在原问题的要求之上再增加如下两个要求。...在左、中、右三个部分的内部也做顺序要求, 要求每部分里的节点从左到右的顺序与原链表中节点的先后次序一致。 例如:链表9->0->4->5->1,pivot=3。...在满足原问题要求的同时,左部分节点从左到 右为0、1。 在原链表中也 是先出现0,后出现1; 中间部分在本例中为空,不再 讨论; 右部分节点 从左到右为9、4、5。...= null) { lessEnd.next = eqSt; // 判断equal的结尾指针是否为空 eqEnd = eqEnd == null ?

    1.4K20

    小白专属mysql入门

    MYSQL-深入到精通mysql教程,请进入知识星球-spark技术学院获取 ---- 基本操作语句创建查看 1,创建数据库: 进入MySql数据库环境后,就可以使用CREATE DATABASE语句创建自己的数据库了...CREATE DATABASE 数据库名;>create database study; 注1:数据库名可以由任意字母、数字、下面(_)和美元符号($)组成,但不能由单独的数字组成,也不能为MySQL关键字...在windows系统下,数据库名不区分大小写,在UNIX、Linux系统下,数据库名是区分大小写的,但是MySQL语句不区分大小写。 注意2:完整的MySQL语句必须以‘;’结尾的语句。...2,通过使用mysql程序备份的文件,可以将数据库恢复到指定的状态。...MySQL支持左连接,右连接,但是并不支持全连接。

    1.1K40

    mysql基本命令

    索引表存储这些哈希值,并在表中保存指向数据的指针,值得注意的是索引表存储哈希值时打乱了原有的存储顺序。...,左连接,右连接的区别 内连接:返回两表指定列名相同的数据,如果没有返回空。...select * from 表1 inner join 表2 on 表1.列名=表2.列名; 内连接 左连接:左边数据全显示,右边表只显示符合条件的数据,如果右边没有相符数据或满足的数据少于左边数据行...,以null代替(记录不足的地方以null代替) select * from 表1 left join 表2 on 表1.列名=表2.列名; 左连接 右连接:与左连接相反 select * from...一个表只能有一个主键,且主键的取值不能缺失,即不能为空值(Null)。 外键:在一个表中存在的另一个表的主键称此表的外键。

    1.3K10

    2019Java面试宝典 -- 数据库常见面试题

    外连接: 左连接(左外连接Left Join):以左表作为基准进行查询,左表数据会全部显示出来,右表如果和左表匹配的数据则显示相应字段的数据,如果不匹配则显示为 null。...相关SQL及解释: 关于左连接和右连接总结性的一句话:左连接where只影响右表,右连接where只影响左表。...聚合函数是对一组值进行计算并返回单一的值的函数,它经常与 select 语句中的 group by 子句一同使用。 a. avg():返回的是指定组中的平均值,空值被忽略。 b....max():返回指定数据中的最大值。 d. min():返回指定数据中的最小值。 e. sum():返回指定数据的和,只能用于数字列,空值忽略。 f....参考文章: 2019Java面试宝典数据库篇 -- MySQL MySQL数据库远程连接、创建新用户、设置权限、更改用户密码 Oracle的连接详解(左连接、右连接、全连接...)?

    2.2K20

    2019Java面试宝典数据库篇 -- MySQL

    下面是一个关于MySQL中SQL语句执行顺序的例子: 题目来源:https://www.cnblogs.com/yyjie/p/7788428.html SELECT 考生姓名, MAX(总成绩) AS...二、SQL 之聚合函数 聚合函数是对一组值进行计算并返回单一的值的函数,它经常与 select 语句中的 group by 子句一同使用。 avg():返回的是指定组中的平均值,空值被忽略。...max():返回指定数据中的最大值。 min():返回指定数据中的最小值。 sum():返回指定数据的和,只能用于数字列,空值忽略。...三、SQL 之连接查询(左连接和右连接的区别) 外连接: 左连接(左外连接):以左表作为基准进行查询,左表数据会全部显示出来,右表如果和左表匹配的数据则显示相应字段的数据,如果不匹配则显示为 null。...右连接(右外连接):以右表作为基准进行查询,右表数据会全部显示出来,左表如果和右表匹配的数据则显示相应字段的数据,如果不匹配则显示为 null。 全连接:先以左表进行左外连接,再以右表进行右外连接。

    1.9K20

    MySQL数据库案例实战教程:数据类型、语法与高级查询详解

    排序 order by like 通配符 group by 分组查询 连接查询 ifnull MySQL 案例实战教程 MySQL的数据类型​​ MySQL支持多种类型,大致可以分为三类:数值、日期/...Mysql语法 建表 --建表 create table 表名( 字段名 类型 约束(主键,非空,唯一,默认值), 字段名 类型 约束(主键,非空,唯一,默认值), )编码,存储引擎...左外连接(Left Outer Join):左外连接会返回左表中所有的行,并且和右表中满足连接条件的行进行连接,如果右表中没有匹配的行,则会用 NULL 值填充。...全连接(Full Outer Join):全连接会返回左表和右表中的所有行,并且对于没有匹配的行会用 NULL 值填充。...右外连接(Right Outer Join):右外连接会返回右表中所有的行,并且和左表中满足连接条件的行进行连接,如果左表中没有匹配的行,则会用 NULL 值填充。

    24710

    MySQL 数据库基础知识(系统化一篇入门)

    性别字段,默认为”男” , 否则为 “女” ; 若无指定该列的值 , 则默认值为”男”的值 四、数据库、数据表的基本操作 4.1、数据库的基本操作 MySQL要想将数据存储到数据库的表中,首先要创建一个数据库...7.3.6、使用空值查询 在MySQL中,使用 IS NULL关键字判断字段的值是否为空值。...但是,有时还需要在返回查询结果中不仅包含符合条件的数据,而且还包括左表、右表或两个表中的所有数据,此时我们就需要使用外连接查询。外连接又分为左(外)连接和右(外)连接。...MySQL 语法格式: select * from 表1 left join 表2 on 条件; LEFT JOIN 左(外)连接:返回包括左表中的所有记录和右表中符合连接条件的记录。...关键字左边的表被称为左表,关键字右边的表被称为右表. 7.4.3.1、左外链接查询 左外连接的结果包括LEFT JOIN子句中指定的左表的所有记录,以及所有满足连接条件的记录。

    5.1K60

    MySQL性能优化(二)-- 数据类型,SQL,八种连接

    一、mysql数据类型优化原则 1. 能够使用最小数据类型存储时,尽量使用最小数据类型存储(前提是要评估字段值的真实数据存储范围) ?...eg: insert into aaa values(12,11); (2) varchar 存储变长的字符串,即根据存入的值的长度来动态变化 存储空间: 非空:65533字节 可空:65532字节 优点...右外连接 内连接 全连接 交叉连接 全外连接 六、实例 join 建表语句 create database test2017; use test2017; 左表t1 create...左表应该都是小表。 ? 3.右连接 right join ? 右表全部保留,左表关联不上的用null表示。 ? 4.内连接 inner join ? 两个表的公共部分。 ?...5.查询左表中独有部分 ? ? 6.查询右表中独有数据 ? ? 7.全连接 ? 在MySQL中没有full join ? 查询t1和t2的独有数据部分 ? ?

    50420
    领券