需要澄清 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 列。
所以我们在 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 列。