本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
JOIN 子句
注意
要查看哪些 AWS 数据源集成支持此SQL命令,请参阅支持的 OpenSearch SQL命令和函数。
SQL联接用于根据联接标准合并两个关系中的行。以下部分介绍整体联接语法和不同类型的联接以及示例。
语法
relation INNER JOIN relation [ join_criteria ]
参数
-
关系
指定要连接的关系。
-
加入类型
指定联接类型。
语法:
INNER | CROSS | LEFT OUTER
-
加入标准
指定如何将一个关系中的行与另一个关系的行合并。
语法:
ON boolean_expression | USING ( column_name [ , ... ] )
-
布尔表达式
指定返回类型为布尔值的表达式。
联接类型
-
内部联接
需要明确指定内部联接。它选择在两个关系中具有匹配值的行。
语法:
relation INNER JOIN relation [ join_criteria ]
-
左键加入
左联接返回左边关系中的所有值和右边关系中的匹配值,NULL如果没有匹配项,则追加。它也被称为左外连接。
语法:
relation LEFT OUTER JOIN relation [ join_criteria ]
-
交叉连接
交叉连接返回两个关系的笛卡尔乘积。
语法:
relation CROSS JOIN relation [ join_criteria ]
示例
-- Use employee and department tables to demonstrate different type of joins. SELECT * FROM employee; +---+-----+------+ | id| name|deptno| +---+-----+------+ |105|Chloe| 5| |103| Paul| 3| |101| John| 1| |102| Lisa| 2| |104| Evan| 4| |106| Amy| 6| +---+-----+------+ SELECT * FROM department; +------+-----------+ |deptno| deptname| +------+-----------+ | 3|Engineering| | 2| Sales| | 1| Marketing| +------+-----------+ -- Use employee and department tables to demonstrate inner join. SELECT id, name, employee.deptno, deptname FROM employee INNER JOIN department ON employee.deptno = department.deptno; +---+-----+------+-----------| | id| name|deptno| deptname| +---+-----+------+-----------| |103| Paul| 3|Engineering| |101| John| 1| Marketing| |102| Lisa| 2| Sales| +---+-----+------+-----------| -- Use employee and department tables to demonstrate left join. SELECT id, name, employee.deptno, deptname FROM employee LEFT JOIN department ON employee.deptno = department.deptno; +---+-----+------+-----------| | id| name|deptno| deptname| +---+-----+------+-----------| |105|Chloe| 5| NULL| |103| Paul| 3|Engineering| |101| John| 1| Marketing| |102| Lisa| 2| Sales| |104| Evan| 4| NULL| |106| Amy| 6| NULL| +---+-----+------+-----------| -- Use employee and department tables to demonstrate cross join. SELECT id, name, employee.deptno, deptname FROM employee CROSS JOIN department; +---+-----+------+-----------| | id| name|deptno| deptname| +---+-----+------+-----------| |105|Chloe| 5|Engineering| |105|Chloe| 5| Marketing| |105|Chloe| 5| Sales| |103| Paul| 3|Engineering| |103| Paul| 3| Marketing| |103| Paul| 3| Sales| |101| John| 1|Engineering| |101| John| 1| Marketing| |101| John| 1| Sales| |102| Lisa| 2|Engineering| |102| Lisa| 2| Marketing| |102| Lisa| 2| Sales| |104| Evan| 4|Engineering| |104| Evan| 4| Marketing| |104| Evan| 4| Sales| |106| Amy| 4|Engineering| |106| Amy| 4| Marketing| |106| Amy| 4| Sales| +---+-----+------+-----------|