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

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

被折叠的 条评论
为什么被折叠?



