📜  使用左右外连接和联合子句的 SQL 全外连接

📅  最后修改于: 2022-05-13 01:54:57.496000             🧑  作者: Mango

使用左右外连接和联合子句的 SQL 全外连接

SQL 连接语句用于根据公共属性或字段组合来自两个或两个以上表的行或信息。 SQL 中基本上有四种类型的JOINS。

在本文中,我们将讨论使用 LEFT OUTER Join、RIGHT OUTER JOIN 和 UNION 子句的 FULL OUTER JOIN。

考虑下面的两个表:

样本输入表 1:

                              Purchase Information
Product_IDMobile_BrandCost (INR)Customer_Name
1OnePlus Nord 5G30,000Rishabh
2Samsung Galaxy M5128,000Srishti
3iPhone 12 Pro1,28,000Aman
4Samsung Galaxy S2055,000Harsh
5Realme X50 Pro40,000Manjari

样本输入表 2:



                  Customer Information
Customer_IDCustomer_NameE_Mail Address
1Srishtiabc@gmail.com
2Rajdeepdef@gmail.com
3Amanxxx@gmail.com
4Poojaxyz@gmail.com

完全外连接

Full Join 提供了 LEFT JOIN 和 RIGHT JOIN 串联的结果。结果将包含表 1 和表 2 中的所有行。结果表中没有匹配的行将具有 NULL 值。

SELECT * FROM Table1
FULL OUTER JOIN Table2
ON Table1.column_match=Table2.column_match;

Table1: First Table in Database.
Table2: Second Table in Database.
column_match: The column common to both the tables.

也可以使用 LEFT OUTER JOIN、RIGHT OUTER JOIN和 UNION的组合来编写上述查询。 UNION 的意思是将两个或多个数据集连接成一个集合。上面的查询和下面的查询将提供相同的输出。

SELECT * FROM Table1
LEFT OUTER JOIN Table2
ON Table1.column_match=Table2.column_match
UNION
SELECT * FROM Table1
RIGHT OUTER JOIN Table2
ON Table1.column_match=Table2.column_match;

Table1: First Table in Database.
Table2: Second Table in Database.
column_match: The column common to both the tables.

示例输出

                                                                                   RESULTS
Product_IDMobile_BrandCOST (INR)Customer_NameCustomer_IDCustomer_NameE_Mail Address
1OnePlus Nord 5G30,000RishabhNULLNULLNULL
2Samsung Galaxy M5128,000Srishti1Srishtiabc@gmail.com
3iPhone 12 Pro1,28,000Aman3Amanxxx@gmail.com
4Samsung Galaxy S2055,000HarshNULLNULLNULL
5Realme X50 Pro40,000ManjariNULLNULLNULL
NULLNULLNULLNULL2Rajdeepdef@gmail.com
NULLNULLNULLNULL4Poojaxyz@gmail.com

示例输入的 SQL 查询:

我们已经考虑了 Big Billion Days 期间来自电子商务网站的手机的客户和购买信息。数据库电子商务有两张表,一张是关于产品的信息,另一张是关于客户的信息。现在,我们将在这两个表之间执行 FULL OUTER JOIN 以将它们连接到一个表中,并获取有关客户和他们从站点购买的产品的完整数据。

现在让我们考虑购买信息表。要查看表,请使用以下查询:

SELECT * FROM purchase_information; 

输出:

采购表

要查看customer_information表,请使用以下查询:

SELECT * FROM customer_information;

输出:

客户表

现在我们可以简单地调用 FULL OUTER JOIN 子句来使用以下查询从上面创建的表中获得组合结果:

SELECT * FROM purchase_information
FULL OUTER JOIN customer_information
ON purchase_information.cust_name=customer_information.customer_name

输出:

使用全外连接的结果表

但是我们可以在不使用 FULL OUTER JOIN 子句的情况下获得相同的结果。为此,我们使用 LEFT JOIN、RIGHT JOIN 和 UNION 子句,如下所示:

SELECT FROM purchase_information
LEFT OUTER JOIN customer information
ON purchase_information.cust_name=customer_information.customer_name
UNION
SELECT * FROM purchase_information

RIGHT OUTER JOIN customer_information
ON purchase_information.cust_name=customer_information.customer_name

输出:

使用 LEFT 和 RIGHT 和 UNION 的完整外部连接的结果表