SQL中的交叉查询、内连接和左外连接、右外连接查询的区别

                                                                                    customer表

idcompany_namecategory_id
1公司a1
2公司b2
3公司c5
4公司d6

                                                                                      category表

idcategory_name
1普通客户
2VIP客户
3海外客户
4无效客户

-- 交叉查询,查到很多错误的数据,这个错误数据的集合叫笛卡尔积

SELECT * FROM customer,category;

 -- 隐式内连接,查得满足条件的数据

SELECT * FROM `customer`,category WHERE `customer`.category_id=category.id;

-- 显示内连接,查得满足条件的数据

SELECT * FROM `customer` INNER JOIN category ON `customer`.category_id=category.id;

-- 左外连接,以left左边的表为标准,右表没有则补NULL

SELECT * FROM `customer` LEFT OUTER JOIN category ON `customer`.category_id=category.id;

-- 右外连接,以right右边的表为标准,左表没有这补NULL

SELECT * FROM customer RIGHT JOIN `category` ON `customer`.category_id=category.id;

总结: 

内连接:显示左边右边共有的

左外连接:左边有的,右边没有补NULL

右外连接:右边有的,左边没有补NULL

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值