LEFT JOIN 语法用法与实例MySQL LEFT JOIN 语法

SQL(MySQL) LEFT JOIN 会取得左表(table1)全部记录,即使右表(table2)并无对应匹配记录。LEFT JOIN 基本语法如下:

... FROM table1 LEFT JOIN table2 ON condition ...

MySQL LEFT JOIN 用法实例

下面是两个原始数据表:

article 文章表:

user 用户表:

我们列出所有的文章及对应的所属用户,即使没有用户的文章也列出。

SELECT ... LEFT JOIN ... ON 语句如下:

SELECT article.aid,article.title,user.username FROM article LEFT JOIN user ON article.uid = user.uid

返回查询结果如下:

可以看出来,与 INNER JOIN 明显的区别是,左表记录被全部取出,即使右表无对应匹配记录。

提示

这里所谓记录被“全部”取出,是相对于 INNER JOIN 的限制来说的。其实可以在上面的 SQL 语句后面加个 WHERE 条件或者 LIMIT 等关键字以同一般 SQL 语句一样对结果集做一个范围限制。

IS NULL

在上面的例子中,对于右表中没有对应匹配的数据记录,其所有的列都被置为 NULL,因此要查询这部分记录(如在上面例子中体现为查找 aid=4 这类无对应用户的文章记录),可以附加 IS NULL 条件:

SELECT article.aid,article.title,user.username FROM article LEFT JOIN user

ON article.uid = user.uid WHERE user.uid IS NULL

RIGHT JOIN 语法用法与实例MySQL RIGHT JOIN 语法

SQL(MySQL) RIGHT JOIN 会取得右表(table2)全部记录,即使左表(table2)并无对应匹配记录。RIGHT JOIN 基本语法如下:

... FROM table1 RIGHT JOIN table2 ON condition ...

MySQL RIGHT JOIN 用法实例

下面是两个原始数据表:

article 文章表:

user 用户表:

我们列出所有的用户,以及他们可能拥有的文章。

SELECT ... RIGHT JOIN ... ON 语句如下:

SELECT article.aid,article.title,user.username FROM article RIGHT JOIN user ON article.uid = user.uid

返回查询结果如下:

对比 LEFT JOIN 返回的查询结果,RIGHT JOIN 返回的结果与其刚好“相反”。

IS NULL

在上面的例子中,对于左表中没有对应匹配的数据记录,其所有的列都被置为 NULL,因此要查询这部分记录(如在上面例子中体现为查找 username=Jack 这类无对应文章的所有用户),可以附加 IS NULL 条件:

SELECT article.aid,article.title,user.username FROM article LEFT JOIN user

ON article.uid = user.uid WHERE article.aid IS NULL

时间: 2015-12-14

mysql right join实例_MySQL表LEFT JOIN左连接与RIGHT JOIN右连接的实例教程相关推荐

  1. MySQL记录变化工具_MySQL 表记录数对比工具

    工具介绍: 以下介绍一个实时对比两个MySQL实例的中表记录数的工具 checkcount.py . 工具大多用于迁移后或者主从数据快速比较 , 快速验证两个mysql数据库实例每个表是否具有相同记录 ...

  2. mysql数据异常增长_mysql表到一定数据量后会异常的增长

    如题 InnoDB的table,里面的字段非常简单,如图中的类型 才100多W的数据量,数据是慢慢积累起来的,到了最近发现涨到12G后,会每天成倍的增长,最高到达过50G,而数据量还是那些,longt ...

  3. mysql约束条件整型_MySQL 表的操作

    表的操作 创建表的完整语法: create table 表名( 字段名1 字段类型[(宽度) 约束条件], 字段名1 字段类型[(宽度) 约束条件], 字段名1 字段类型[(宽度) 约束条件] ); ...

  4. mysql随机选择记录表_Mysql表中取随机记录

    RAND()是Mysql中的取随机数函数,该函数返回一个float型数值v,v的值为0 例如: mysql> SELECT RAND(); -> 0.9233482386203 mysql ...

  5. mysql 记录更新时间_MySQL表内更新时,自动记录时间

    1.创建表: create table test_time ( id int primary key not null, status  varchar(24), create_time dateti ...

  6. mysql 数据类型 有备注_MySQL表结构(含数据类型、字段备注注释)导出成Excel

    像我们使用的数据库图形化工具Navicat Premium.Navicat for XXX.SQLyog.DataGrip等等都可以导出表结构SQL脚本,但是当我们要将数据库整理成文档时导出表结构的s ...

  7. mysql 安建分区_mysql表分区

    范围分区: CREATE TABLE BIGTABLE ( ID INT, SNPTIME DATETIME NOT NULL, VALUE VARCHAR(20), PRIMARY KEY (SNP ...

  8. mysql连接代码_MySQL 表连接

    MySQL数据库表有4种连接方式: 左连接(左外连接) 右连接(右外连接) 等值连接(内连接) 全连接(全外连接) 以下,小编将依次简要介绍,希望能对初学的小伙伴们有所裨益. 首先先介绍下将要使用的两 ...

  9. 三个表的全连接查询(多表联合查询):替代full join

    (首先声明一下,本篇文章是要查询表的所有数据) 参考:https://blog.csdn.net/u012410733/article/details/63684663 在mysql中没有full j ...

最新文章

  1. 涉密计算机用户账号设置审批表,北京邮电大学涉密计算机配置审批表.PDF
  2. ExFat文件系统DBR受损恢复案例
  3. 分享自己针对Automation做的两个成熟的框架(QTP 和Selenium)
  4. 月份第一天_4月份的第一天,全省迎来晴暖天气~
  5. Mysql数据库启动命令
  6. Linux编程中C语言头文件位置
  7. 四级联动--省市县/区街道
  8. VSCODE Vue插件
  9. JAVA项目 畅购商城 框架搭建
  10. 5G时代下的人工智能发展
  11. 百度地图查看导航记录,导航路线,记录驾驶路线
  12. 用python模拟球赛
  13. 综合案例----学生管理系统
  14. ddr42400和2660混插_时至今日,DDR42400的马甲内存条为何不值得购买了?
  15. 【Python】豆瓣FM API分析
  16. 【Simulink教程案例12】基于BPSK+costas环载波同步的simulink建模与仿真分析
  17. vmware esxi 6-7 全套资源分享(定期更新)
  18. win10 安装驱动时 哈希值报错解决办法记录
  19. 数字信号处理知识点总结(二):傅里叶级数与变换
  20. Java编程那些事儿103——网络编程技术2

热门文章

  1. 不明原因的约束报错的两种处理方式
  2. kvm安装及虚拟机创建
  3. zookeeper安装和使用 windows环境(转)
  4. 最短路-SPAF模板
  5. Angular 4 依赖注入教程之一 依赖注入简介
  6. DT时代下[个推3.0]遵循的四个法则
  7. Linux SWAP分区占用率高,刷新SWAP分区方法
  8. Windows Server 2008 升级安装
  9. 如果在BackgroundWorker运行过程中关闭窗体…
  10. 安装docker后遇到permision问题