MySQL左关联、右关联、内关联查询

要说MySQL的关联查询,首先先说一下笛卡尔积

有两个集合 A = {1, 2},B = {1, 3},这两个集合的笛卡尔积 A * B就有四种情况, A * B = {(1,1), (1,3), (2,1),(2,3)}

笛卡尔积
12
13
21
23

假设现在有两张表,table_A和 table_B 

table_A
a_user_ida_name
1aa
2ab
3ac
table_B
b_user_idb_name
1ba
2bb
4bc

1、内关联查询,INNER JOIN

SELECT * FROM table_A INNER JOIN table_B ON a_user_id = b_user_id;

table_A INNER JOIN table_B 这样查询到的结果就是 表 table_A和table_B 的交集。也就是a_user_id 和 b_user_id 的交集 = 1,2;

2、左关联, LEFT JOIN

SELECT * FROM table_A LEFT JOIN table_B ON a_user_id = b_user_id;

table_A LEFT JOIN table_B 这样查询到的结果就是表 table_A 全部数据 和 table_B的交集。也就是a_user_id 和 b_user_id 的交集 = 1,2,3;

3、右关联, RIGHT JOIN

SELECT * FROM table_A RIGHT JOIN table_B ON a_user_id = b_user_id;

table_A RIGHT JOIN table_B 这样查询到的结果就是表 table_B全部数据和 table_A的交集。也就是a_user_id 和 b_user_id 的交集 = 1,2,4;

也可以用联合查询,就不能用ON了。

SELECT * FROM table_A, table_B WHERE a_user_id = b_user_id;

 

  • 11
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值