mysql left join right join inner join例子
2013-12-01 23:48
483 查看
建表语句如下:
#--------------create table_a-----------
create table table_a(
id int(11) not null auto_increment,
name varchar(20) not null,
primary key(id)
)engine=InnoDB default charset=utf8;
#----------------create table_b----------
create table table_b(
id int(11) not null,
name varchar(20) not null,
primary key(id)
)engine=InnoDB default charset=utf8;
插入几条数据:
#-------------insert data into table a------------
insert into table_a values(1,'a20121313'),(2,'a2131314'),(3,'a43239284392'),(4,'a33727427'),
(5,'a32382592'),(6,'a42424224'),(7,'a14312141');
#-------insert data into table_b----------------
insert into table_b values(1,'b2141414'),(2,'b15315151'),(3,'b562842842'),(4,'b32185115');
1.left join
sql如下:
select * from table_a a left join table_b b on a.id = b.id;
结果如下:
+----+--------------+------+------------+
| id | name | id | name |
+----+--------------+------+------------+
| 1 | a20121313 | 1 | b2141414 |
| 2 | a2131314 | 2 | b15315151 |
| 3 | a43239284392 | 3 | b562842842 |
| 4 | a33727427 | 4 | b32185115 |
| 5 | a32382592 | NULL | NULL |
| 6 | a382331 | NULL | NULL |
| 7 | a64376371631 | NULL | NULL |
+----+--------------+------+------------+
7 rows in set (0.00 sec)
通过观察结果可以得出以下结论,left join以左表为基础表,以右表为从表,左表不存在的数据设置为NULL。
2.right join
sql如下:
select * from table_a a right join table_b b on a.id = b.id;
结果如下:
+------+--------------+----+------------+
| id | name | id | name |
+------+--------------+----+------------+
| 1 | a20121313 | 1 | b2141414 |
| 2 | a2131314 | 2 | b15315151 |
| 3 | a43239284392 | 3 | b562842842 |
| 4 | a33727427 | 4 | b32185115 |
+------+--------------+----+------------+
4 rows in set (0.00 sec)
right join以右表为基础表,左表为从表,左表不存在的项设置为NULL
3.inner join
inner join无基础表,只是显示符合条件的结果。
#--------------create table_a-----------
create table table_a(
id int(11) not null auto_increment,
name varchar(20) not null,
primary key(id)
)engine=InnoDB default charset=utf8;
#----------------create table_b----------
create table table_b(
id int(11) not null,
name varchar(20) not null,
primary key(id)
)engine=InnoDB default charset=utf8;
插入几条数据:
#-------------insert data into table a------------
insert into table_a values(1,'a20121313'),(2,'a2131314'),(3,'a43239284392'),(4,'a33727427'),
(5,'a32382592'),(6,'a42424224'),(7,'a14312141');
#-------insert data into table_b----------------
insert into table_b values(1,'b2141414'),(2,'b15315151'),(3,'b562842842'),(4,'b32185115');
1.left join
sql如下:
select * from table_a a left join table_b b on a.id = b.id;
结果如下:
+----+--------------+------+------------+
| id | name | id | name |
+----+--------------+------+------------+
| 1 | a20121313 | 1 | b2141414 |
| 2 | a2131314 | 2 | b15315151 |
| 3 | a43239284392 | 3 | b562842842 |
| 4 | a33727427 | 4 | b32185115 |
| 5 | a32382592 | NULL | NULL |
| 6 | a382331 | NULL | NULL |
| 7 | a64376371631 | NULL | NULL |
+----+--------------+------+------------+
7 rows in set (0.00 sec)
通过观察结果可以得出以下结论,left join以左表为基础表,以右表为从表,左表不存在的数据设置为NULL。
2.right join
sql如下:
select * from table_a a right join table_b b on a.id = b.id;
结果如下:
+------+--------------+----+------------+
| id | name | id | name |
+------+--------------+----+------------+
| 1 | a20121313 | 1 | b2141414 |
| 2 | a2131314 | 2 | b15315151 |
| 3 | a43239284392 | 3 | b562842842 |
| 4 | a33727427 | 4 | b32185115 |
+------+--------------+----+------------+
4 rows in set (0.00 sec)
right join以右表为基础表,左表为从表,左表不存在的项设置为NULL
3.inner join
inner join无基础表,只是显示符合条件的结果。
相关文章推荐
- 【sql】mysql left join,right join,inner join超详细用法解析
- mysql left join,right join,inner join用法分析
- Mysql基本用法-left join、right join、 inner join、子查询和join-02
- mysql多表连接查询inner join, left join , right join ,full join ,cross join
- MySQL| MySQL联接(INNER JOIN,LEFT JOIN,RIGHT JOIN)
- MYSQL用法(二) inner join,left join right join,full join 示例
- mysql中left join,right join,inner join,outer join的用法详解【转】
- 【sql】mysql left join,right join,inner join超详细用法解析
- mysql的left join、 right join和inner join
- MySQL之left join、right join、inner join的区别
- mysql left join,right join,inner join
- mysql的left join,right join,inner join用法分析
- Mysql之inner join,left join,right join详解
- mysql left join,right join,inner join的区别
- Mysql 连接(inner join,默认的就是内连接)、外连接(left join,right join)
- mysql中left join ,right join 以及inner join 比较
- mysql中left join,right join,inner join,outer join 用法详解
- mysql left join,right join,inner join用法分析
- Mysql 连接(left join, right join, inner join ,full join)
- mysql left join,right join,inner join的区别