左连接与右连接的区别
分享
分类: IT资料 2006-02-21 16:12
左联时,会全显左表的数据,如果右表没有满足的条件的数据为Null.
右联时,会全显右表的数据,如果左表没有满足的条件的数据为Null.
--关于连接的简单示例
--测试数据
**************
table: a
字段: id_a
------
1
2
****************
****************
table: b
字段:id_b
------
2
3
****************
--内连接
select * from a join b on a.id_a=b.id_b
/*--测试结果
只返回两个表中id_a与id_b相同的记录
id_a id_b
----------- -----------
2 2
(所影响的行数为 1 行)
--*/
--左连接
select * from a left join b on a.id_a=b.id_b
/*--测试结果
返回a(左边表)所有的记录,及b的id_b与a的id_a对应的记录
没有对应的就用null表示
id_a id_b
----------- -----------
1 NULL
2 2
(所影响的行数为 2 行)
--*/
--右连接
select * from a right join b on a.id_a=b.id_b
/*--测试结果
返回b(右边表)所有的记录,及b的id_b与a的id_a对应的记录
没有对应的就用null表示
id_a id_b
----------- -----------
2 2
NULL 3
(所影响的行数为 2 行)
--*/
希望通过这个了简单例子,可以使对左、右连接不清楚的同学有所启发!
分享
分类: IT资料 2006-02-21 16:12
左联时,会全显左表的数据,如果右表没有满足的条件的数据为Null.
右联时,会全显右表的数据,如果左表没有满足的条件的数据为Null.
--关于连接的简单示例
--测试数据
**************
table: a
字段: id_a
------
1
2
****************
****************
table: b
字段:id_b
------
2
3
****************
--内连接
select * from a join b on a.id_a=b.id_b
/*--测试结果
只返回两个表中id_a与id_b相同的记录
id_a id_b
----------- -----------
2 2
(所影响的行数为 1 行)
--*/
--左连接
select * from a left join b on a.id_a=b.id_b
/*--测试结果
返回a(左边表)所有的记录,及b的id_b与a的id_a对应的记录
没有对应的就用null表示
id_a id_b
----------- -----------
1 NULL
2 2
(所影响的行数为 2 行)
--*/
--右连接
select * from a right join b on a.id_a=b.id_b
/*--测试结果
返回b(右边表)所有的记录,及b的id_b与a的id_a对应的记录
没有对应的就用null表示
id_a id_b
----------- -----------
2 2
NULL 3
(所影响的行数为 2 行)
--*/
希望通过这个了简单例子,可以使对左、右连接不清楚的同学有所启发!