mysql的几种join
来源:互联网 发布:数据粒度和维度 编辑:程序博客网 时间:2024/04/30 20:04
之前学习mysql的时候对于老师说的左连接,右连接…之类的概念一直不清楚,模模糊糊的。工作之后理解这些名词一概念,现在把它记录一下。也希望能够帮助对于mysql中join不太清晰的朋友。这样可以根据自己的业务场景选择合适的join语句。
初始化SQL语句:
/*join 建表语句*/drop database if exists test;create database test;use test;/* 左表t1*/drop table if exists t1;create table t1 (id int not null,name varchar(20));insert into t1 values (1,'t1a');insert into t1 values (2,'t1b');insert into t1 values (3,'t1c');insert into t1 values (4,'t1d');insert into t1 values (5,'t1f');/* 右表 t2*/drop table if exists t1;create table t2 (id int not null,name varchar(20));insert into t2 values (2,'t2b');insert into t2 values (3,'t2c');insert into t2 values (4,'t2d');insert into t2 values (5,'t2f');insert into t2 values (6,'t2a');
1、笛卡尔积
两表关联,把左表的列和右表的列通过笛卡尔积的形式表达出来。
mysql> select * from t1 join t2;
2、左连接
两表关联,左表全部保留,右表关联不上用null表示。
mysql> select * from t1 left join t2 on t1.id = t2.id;
3、右连接
右表全部保留,左表关联不上的用null表示。
mysql> select * from t1 right join t2 on t1.id =t2.id;
4、内连接
两表关联,保留两表中交集的记录。
mysql> select * from t1 inner join t2 on t1.id = t2.id;
5、左表独有
两表关联,查询左表独有的数据。
mysql> select * from t1 left join t2 on t1.id = t2.id where t2.id is null;
6、右表独有
两表关联,查询右表独有的数据。
mysql> select * from t1 right join t2 on t1.id = t2.id where t1.id is null;
7、全连接
两表关联,查询它们的所有记录。
oracle里面有full join,但是在mysql中没有full join。我们可以使用union来达到目的。
mysql> select * from t1 left join t2 on t1.id = t2.id -> union -> select * from t1 right join t2 on t1.id = t2.id;
8、并集去交集
两表关联,取并集然后去交集。
mysql> select * from t1 left join t2 on t1.id = t2.id where t2.id is null -> union -> select * from t1 right join t2 on t1.id = t2.id where t1.id is null;
0 0
- mysql的几种join
- MySQL的几种join
- MySQL数据库join的几种方式
- MYSQL 的几种join连接方式
- MySQL的几种连接 join/inner join/cross join/逗号/left join/right join/natural join
- MySQL的几种连接 join/inner join/cross join/逗号/left join/right join/natural join
- join的几种实现
- SQL中的几种join的方法
- SQL JOIN 连接的几种方式
- 浅谈MapRuduce的几种Join方式
- MapReduce中两表join的几种方案
- hadoop实现Join的几种方法
- T-SQL: JOIN的几种关系
- 一目了然的几种join方式举例
- SQL SERVER几种Join的区别
- Hive Join的几种方式
- Join有关的几种连接查询
- Mysql的七种join
- 2017-03-19第n&n次考试
- Linux环境变量的设置
- file_operation
- Spring BeanCopier深度复制
- EAP: unknown authentication type 26; Naking
- mysql的几种join
- 大数据工程师(开发)面试系列(3)
- ThreadLocal原理和项目中如何使用
- AR入门系列-06-Vuforia文字识别
- js 判断手机系统的方法
- SQL用and和or多表查询笛卡尔积
- 移动端高清多屏适配的解决方案
- 第一个progressive web application,发车!
- [LeetCode OJ]Longest Substring Without Repeating Characters