Difference between natural join and inner join

本文详细对比了SQL中INNER JOIN与NATURAL JOIN的不同之处,通过具体实例展示了两者在返回列数量上的差异,并解释了NATURAL JOIN如何避免重复列。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

One significant difference between INNER JOIN and NATURAL JOIN is the number of columns returned.

Consider:

TableA                            TableB
Column1    Column2                Column1    Column3
1          2                      1          3

The INNER JOIN of TableA and TableB on Column1 will return

a.column1  a.column2  b.column1  b.column3
1          2          1          3

SELECT * FROM TableA INNER JOIN TableB USING (Column1)
SELECT * FROM TableA INNER JOIN TableB ON TableA.Column1 = TableB.Column1

The NATURAL JOIN of TableA and TableB on Column1 will return:

column1  column2  column3
1        2        3

SELECT * FROM TableA NATURAL JOIN TableB

The repeated column is avoided.

(AFAICT from the standard grammar, you can't specify the joining columns in a natural join; the join is strictly name-based. See also Wikipedia.)

(There's a cheat in the inner join output; the a. and b. parts would not be in the column names; you'd just have column1, column2, column1, column3 as the headings.)

转载于:https://my.oschina.net/u/2275100/blog/847376

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值