使用左右外连接和联合子句的 SQL 全外连接
SQL 连接语句用于根据公共属性或字段组合来自两个或两个以上表的行或信息。 SQL 中基本上有四种类型的JOINS。
在本文中,我们将讨论使用 LEFT OUTER Join、RIGHT OUTER JOIN 和 UNION 子句的 FULL OUTER JOIN。
考虑下面的两个表:
样本输入表 1: Purchase Information Product_ID Mobile_Brand Cost (INR) Customer_Name 1 OnePlus Nord 5G 30,000 Rishabh 2 Samsung Galaxy M51 28,000 Srishti 3 iPhone 12 Pro 1,28,000 Aman 4 Samsung Galaxy S20 55,000 Harsh 5 Realme X50 Pro 40,000 Manjari
样本输入表 2:
Customer Information | ||
---|---|---|
Customer_ID | Customer_Name | E_Mail Address |
1 | Srishti | abc@gmail.com |
2 | Rajdeep | def@gmail.com |
3 | Aman | xxx@gmail.com |
4 | Pooja | xyz@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_ID Mobile_Brand COST (INR) Customer_Name Customer_ID Customer_Name E_Mail Address 1 OnePlus Nord 5G 30,000 Rishabh NULL NULL NULL 2 Samsung Galaxy M51 28,000 Srishti 1 Srishti abc@gmail.com 3 iPhone 12 Pro 1,28,000 Aman 3 Aman xxx@gmail.com 4 Samsung Galaxy S20 55,000 Harsh NULL NULL NULL 5 Realme X50 Pro 40,000 Manjari NULL NULL NULL NULL NULL NULL NULL 2 Rajdeep def@gmail.com NULL NULL NULL NULL 4 Pooja xyz@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
输出: