SQL右连接【RIGHT JOIN】详解及图解
SQL RIGHT JOIN 连接两个表并根据一个条件获取行,该条件在两个表中都匹配(在下面的语法中提到的 JOIN 子句之前和之后),并且不匹配的行也可以从 JOIN 子句之后编写的表中可用(在下面的语法中提到)。
SQL Right Join 的图示:
语法:
SELECT *
FROM table1
RIGHT [ OUTER ] JOIN table2
ON table1.column_name=table2.column_name;
SQL RIGHT join 从 table2 中获取一组完整的记录,即 JOIN 子句后面最右边的表,以及 table1 中的匹配记录(取决于可用性)。当不进行匹配时,结果为左侧为 NULL。
语法图 - SQL Right Join
SQL 右联接或右外联接的示例
样品表:食品(foods)
+---------+--------------+-----------+------------+ | ITEM_ID | ITEM_NAME | ITEM_UNIT | COMPANY_ID | +---------+--------------+-----------+------------+ | 1 | Chex Mix | Pcs | 16 | | 6 | Cheez-It | Pcs | 15 | | 2 | BN Biscuit | Pcs | 15 | | 3 | Mighty Munch | Pcs | 17 | | 4 | Pot Rice | Pcs | 15 | | 5 | Jaffa Cakes | Pcs | 18 | | 7 | Salt n Shake | Pcs | | +---------+--------------+-----------+------------+
示例表:公司(company)
+------------+---------------+--------------+ | COMPANY_ID | COMPANY_NAME | COMPANY_CITY | +------------+---------------+--------------+ | 18 | Order All | Boston | | 15 | Jack Hill Ltd | London | | 16 | Akas Foods | Delhi | | 17 | Foodies. | London | | 19 | sip-n-Bite. | New York | +------------+---------------+--------------+
要从公司表中获取公司 ID、公司名称和公司城市列,以及从食品表中获取公司 ID、项目名称列,在与这些提到的表进行 OUTER JOIN 后,可以使用以下 SQL 语句:
SQL代码
SELECT company.company_id,company.company_name,
company.company_city,foods.company_id,foods.item_name
FROM company
RIGHT JOIN foods
ON company.company_id = foods.company_id;
解释:
此 SQL 语句将返回 foods 表中的所有行,并且仅返回 company 表中联接字段相等的行,如果 ON 子句与 company 表中的任何记录不匹配,则联接仍将返回行,但 company 表的每一列中都返回 NULL。
输出:
COMPANY_ID COMPANY_NAME COMPANY_CITY COMPANY_ID ITEM_NAME ---------- ------------------------- ------------------------- ---------- -------------- 18 Order All Boston 18 Jaffa Cakes 15 Jack Hill Ltd London 15 Pot Rice 15 Jack Hill Ltd London 15 BN Biscuit 15 Jack Hill Ltd London 15 Cheez-It 16 Akas Foods Delhi 16 Chex Mix 17 Foodies. London 17 Mighty Munch Salt n Shake
此处所示的上述 SQL 语句的输出是使用 Oracle Database 10g Express Edition 获取的
上述示例的图示:
版权所属:SO JSON在线解析
原文地址:https://www.sojson.com/blog/504.html
转载时必须以链接形式注明原始出处及本声明。
如果本文对你有帮助,那么请你赞助我,让我更有激情的写下去,帮助更多的人。