SQL-关联查询

T_A A表 T_B B标,id为表与表相关联的字段`
创建相关表结构

CREATE TABLE Table_B( id INT(2), serNum VARCHAR(10) ); 
CREATE TABLE Table_A( id INT(2), serNum VARCHAR(10) ); 
INSERT INTO table_a (id, serNum)
 VALUES (1,'A000101'),(2,'A000102'),(3,'A000103'),(5,'A000104'),(8,'A000105'),(4,'A000106');
INSERT INTO table_b (id, serNum) 
 VALUES (1,'B000201'),(2,'B000202'),(3,'B000203'),(6,'B000204'),(7,'B000205'),(9,'B000206');

1336600-20190220181848032-1253200601.png
Table_A
id serNum
------ ---------
1 A000100
2 A000102
3 A000103
5 A000104
8 A000105
4 A000106

Table_B
id serNum
------ ---------
1 B000201
2 B000202
3 B000203
6 B000204
7 B000205
9 B000206

1. inner join 内连接查询

1336600-20190220174724532-2009232488.png

SELECT a.*,b.*
FROM table_a a
INNER JOIN table_b b
ON a.id=b.id

查询结果:
id serNum id serNum
------ ------- ------ ---------
1 A000100 1 B000201
2 A000102 2 B000202
3 A000103 3 B000203

2. left join 左关联查询

以左表作为基础表去关联右表,查询的结果为左表的子集

1336600-20190220174829563-2104234923.png

SELECT a.*,b.*
FROM table_a a
LEFT JOIN table_b b
ON a.id=b.id

查询结果:
id serNum id serNum
------ ------- ------ ---------
1 A000100 1 B000201
2 A000102 2 B000202
3 A000103 3 B000203
5 A000104 (NULL) (NULL)
8 A000105 (NULL) (NULL)
4 A000106 (NULL) (NULL)

3.right join 右关联查询

以右表作为基础表去关联左表,查询的结果为右表的子集

1336600-20190220175137351-1413903383.png

SELECT a.*,b.*
FROM table_a a
RIGHT JOIN table_b b
ON a.id=b.id

查询结果:
id serNum id serNum
------ ------- ------ ---------
1 A000100 1 B000201
2 A000102 2 B000202
3 A000103 3 B000203
(NULL) (NULL) 6 B000204
(NULL) (NULL) 7 B000205
(NULL) (NULL) 9 B000206

4.左连接-内连接

取左表的部分集合,但又不存在右表中
1336600-20190220185321821-816934833.png

SELECT a.*,b.*
FROM table_a a
LEFT JOIN table_b b
ON a.id=b.id
WHERE b.id IS NULL

查询结果:
id serNum id serNum
------ ------- ------ --------
5 A000104 (NULL) (NULL)
8 A000105 (NULL) (NULL)
4 A000106 (NULL) (NULL)

5. 右连接-内连接

取有表的部分数据,但又不存在左表中
1336600-20190220185529426-1437724343.png

SELECT a.*,b.*
FROM table_a a
RIGHT JOIN table_b b
ON a.id=b.id
WHERE a.id IS NULL

查询结果:
id serNum id serNum
------ ------ ------ ---------
(NULL) (NULL) 6 B000204
(NULL) (NULL) 7 B000205
(NULL) (NULL) 9 B000206

转载于:https://www.cnblogs.com/hitechr/p/10408085.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值