Mysql|Natural Joins | Cross Joins | 自然连接 | 交叉连接

本文讲解了SQL中的NaturalJoin与CrossJoin,比较了它们的特点,并提供了发货人与产品表的连接示例。

Natural join

SELECT 
	o.order_id,
    c.first_name
FROM orders o
NATURAL JOIN customers c 

数据库会自动将不同的两个列表中  相同列相同值的两列自动连接,但不鼓励使用,因为不能人为的选择

Cross Joins

SELECT 
	 c.first_name as customer,
     p.name as product
FROM customers c
CROSS JOIN products p
order by c.first_name

顾客表里的每条记录都会和产品表里的每条记录结合  ,类似于笛卡尔积

另外一个隐式写法

SELECT 
	c.first_name AS customer,
    p.name AS product
FROM customers c ,products p
-- CROSS JOIN products p
ORDER BY c.first_name

练习

做一个发货人和产品的交叉连接。先使用隐性连接 后使用显性连接

隐式

SELECT 
	 s.name as shipper,
     p.name as product
FROM shippers s, products p
ORDER BY s.name;

显示

SELECT 
	 s.name as shipper,
     p.name as product
FROM shippers s
CROSS JOIN products p
ORDER BY s.name

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值