JOIN的区别
CREATE TABLE `j1` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`c1` varchar(20) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB;
CREATE TABLE `j2` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`c1` varchar(20) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB;
mysql> select * from j1;
+----+-------+
| id | c1 |
+----+-------+
| 1 | user1 |
| 2 | user2 |
| 3 | user3 |
| 4 | user4 |
| 5 | user5 |
+----+-------+
5 rows in set (0.01 sec)
mysql> select * from j2;
+----+--------------+
| id | c1 |
+----+--------------+
| 1 | user_detail1 |
| 3 | user_detail3 |
| 4 | user_detail4 |
| 6 | user_detail6 |
| 8 | user_detail8 |
+----+--------------+
5 rows in set (0.00 sec)
mysql> select * from j1 left join j2 on j1.id = j2.id;
+----+-------+------+--------------+
| id | c1 | id | c1 |
+----+-------+------+--------------+
| 1 | user1 | 1 | user_detail1 |
| 2 | user2 | NULL | NULL |
| 3 | user3 | 3 | user_detail3 |
| 4 | user4 | 4 | user_detail4 |
| 5 | user5 | NULL | NULL |
+----+-------+------+--------------+
5 rows in set (0.00 sec)
mysql> select * from j1 right join j2 on j1.id = j2.id;
+------+-------+----+--------------+
| id | c1 | id | c1 |
+------+-------+----+--------------+
| 1 | user1 | 1 | user_detail1 |
| 3 | user3 | 3 | user_detail3 |
| 4 | user4 | 4 | user_detail4 |
| NULL | NULL | 6 | user_detail6 |
| NULL | NULL | 8 | user_detail8 |
+------+-------+----+--------------+
5 rows in set (0.00 sec)
mysql> select * from j1 inner join j2 on j1.id = j2.id;
+----+-------+----+--------------+
| id | c1 | id | c1 |
+----+-------+----+--------------+
| 1 | user1 | 1 | user_detail1 |
| 3 | user3 | 3 | user_detail3 |
| 4 | user4 | 4 | user_detail4 |
+----+-------+----+--------------+
3 rows in set (0.00 sec)
+----+-------------+-------+------------+--------+---------------+---------+---------+--------------+------+----------+-------------+
| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
+----+-------------+-------+------------+--------+---------------+---------+---------+--------------+------+----------+-------------+
| 1 | SIMPLE | j2 | NULL | ALL | PRIMARY | NULL | NULL | NULL | 5 | 80.00 | Using where |
| 1 | SIMPLE | j1 | NULL | eq_ref | PRIMARY | PRIMARY | 4 | mytest.j2.id | 1 | 100.00 | NULL |
+----+-------------+-------+------------+--------+---------------+---------+---------+--------------+------+----------+-------------+
2 rows in set, 1 warning (0.00 sec)
+----+-------------+-------+------------+--------+---------------+---------+---------+--------------+------+----------+-------------+
| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
+----+-------------+-------+------------+--------+---------------+---------+---------+--------------+------+----------+-------------+
| 1 | SIMPLE | j1 | NULL | ALL | PRIMARY | NULL | NULL | NULL | 5 | 80.00 | Using where |
| 1 | SIMPLE | j2 | NULL | eq_ref | PRIMARY | PRIMARY | 4 | mytest.j1.id | 1 | 100.00 | NULL |
+----+-------------+-------+------------+--------+---------------+---------+---------+--------------+------+----------+-------------+
2 rows in set, 1 warning (0.00 sec)
JOIN的区别的更多相关文章
- sql之left join、right join、inner join的区别
sql之left join.right join.inner join的区别 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括 ...
- SQL中inner join、outer join和cross join的区别
对于SQL中inner join.outer join和cross join的区别简介:现有两张表,Table A 是左边的表.Table B 是右边的表.其各有四条记录,其中有两条记录name是相同 ...
- left join 和 left outer join 的区别
left join 和 left outer join 的区别 通俗的讲: A left join B 的连接的记录数与A表的记录数同 A right join ...
- SQL Server之LEFT JOIN、RIGHT LOIN、INNER JOIN的区别
很多人刚入门的时候分不清LEFT JOIN.RIGHT LOIN 和 INNER JOIN的区别,对它们的定义比较模糊,今天就简单的介绍一下它们的区别,对于入门的人来说,应该能够帮助你们理解. lef ...
- 【转载】SQL中inner join、outer join和cross join的区别
对于SQL中inner join.outer join和cross join的区别很多人不知道,我也是别人问起,才查找资料看了下,跟自己之前的认识差不多, 如果你使用join连表,缺陷的情况下是inn ...
- JAVA多线程之CountDownLatch与join的区别
首先,我们来看一个应用场景1: 假设一条流水线上有三个工作者:worker0,worker1,worker2.有一个任务的完成需要他们三者协作完成,worker2可以开始这个任务的前提是worker0 ...
- sleep、yield、wait、join的区别(阿里面试)
1. Thread.sleep(long) 和Thread.yield()都是Thread类的静态方法,在调用的时候都是Thread.sleep(long)/Thread.yield()的方式进行调 ...
- 并发编程---互斥锁---互斥锁与join的区别
互斥锁 互斥锁:就是把多个进程并发,修改成一块共享数据的操作变成串行,保证是一个一个来修改的. 缺点:效率低,加锁过程复杂 优点:增加了安全性 from multiprocessing import ...
- sql之left join、right join、inner join的区别,连接自己时的查询结果测试
sql之left join.right join.inner join的区别 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括 ...
- hive中left join、left outer join和left semi join的区别
先说结论,再举例子. hive中,left join与left outer join等价. left semi join与left outer join的区别:left semi join相当 ...
随机推荐
- windows sh.exe 中文乱码
idea 需要重启 export LANG=zh_CN.utf-8 alias ls='ls --show-control-chars --color=auto'
- js constructor typeOf 区别
constructor 属性返回对创建此对象的数组函数的引用. 例如:const obj = {a: 1} console.log(obj.constructor) // funct ...
- 第12组 Alpha事后诸葛亮
Header 组长博客 Postmortem 设想和目标 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 要解决的是喜欢记录分享旅游生活的人群的行迹记录和分享问题, ...
- mysql upper() 函数
mysql> select upper(" cdcdcd"); +------------------+ | upper(" cdcdcd") | +-- ...
- msyql8.0编译安装
1.安装依赖 yum -y install wget cmake gcc gcc-c++ncurses ncurses-devel libaio-devel openssl openssl-d ...
- Hive(一)—— 启动与基本使用
一.基本概念 Hive用于解决海量结构化日志的数据统计问题. Hive是基于Hadoop的一个数据仓库工具.本质是将HQL(Hive的查询语言)转化成MapReduce程序. HIve处理的数据存储在 ...
- Http项目转Https项目
Https证书准备 开发环境下,可直接用JDK自带的keytool工具生成一个证书,正式环境可购买一个,配置过程是一样的: 打开cmd命令行,输入以下命令: 命令解释: -alias 证书别名 -ke ...
- RPC接口测试(三) RPC接口测试
RPC接口测试 接口测试主要分HTTP和RPC两类,RPC类型里面以Dubbo较为知名.互联网微服务架构,两种接口都需要做接口测试的,不管是业务测试还是回归测试: Dubbo:Java栈的互联网公司比 ...
- flask 开发接口测试平台
flask 开发接口测试平台 数据库,forms views 视图, 数据库如下: # encoding: utf-8 ''' @author: lileilei @file: models.py ...
- Robot Framwork关键字驱动+RedwoodHQ安装
一.Robot Framwork介绍 Robot Framwork是一款python编写的功能框架.具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进行分布式测试执行. ...