需要澄清 SQL 中的 JOIN 概念

Clarity on concept of JOIN in SQL needed

所以我们在 SQL 中遇到的各种类型的联接是:

1.JOIN

2.NATURAL加入

3.INNER加入

4.OUTER加入(左、右、全)

5.CROSS加入

我需要清楚地了解 JOIN、NATURAL JOIN 和 CROSS JOIN 之间的区别

在 w3schools.com 我使用了 JOIN 和 NATURAL JOIN 查询并得到了以下结果

1.Query 加入。

SELECT *
FROM Orders
JOIN Customers;

Output of the JOIN query(Postal Code and Country Column can't be seen but they're there)

2.Query 用于自然连接。

SELECT *
FROM Orders
NATURAL JOIN Customers;

Output of Natural Join

我是初学者,我不太清楚 JOIN 和 NATURAL JOIN 关键字的概念,因为互联网上的 material 还不够,或者如果有的话,我也不清楚我之间的困惑这两个关键字。

我不明白为什么这2个关键字抓取的记录数如此之多different.Please提前解释清楚是怎么回事here.Thanks

加入

SELECT *
  FROM orders o
  JOIN customers c
    ON o.customerid = c.customerid

结果

orderid, orderdate,  customerid, customerid, customername
10248,   1996-04-07, 1,          1,          Alfreds Futterkitse
10248,   1996-04-07, 2,          2,          Ana Trujillo
10248,   1996-04-07, 3,          3,          Antonio Moreno
10248,   1996-04-07, 4,          4,          Around the Horn
10248,   1996-04-07, 5,          5,          Berglunds snabbkop

NATURAL JOIN中避免了重复列

自然连接

 SELECT *
   FROM orders o
NATURAL JOIN customers c

结果

customerid, orderid, orderdate,  customername
1,          10248,   1996-04-07, Alfreds Futterkitse
2,          10248,   1996-04-07, Ana Trujillo
3,          10248,   1996-04-07, Antonio Moreno
4,          10248,   1996-04-07, Around the Horn
5,          10248,   1996-04-07, Berglunds snabbkop

由于您选择了*,订单中的customerid 和customers 都会在JOIN 中显示,但在NATURAL JOIN 中,只会显示一个customerid 列。