RIGHT JOIN
右联接(RIGHT JOIN)表示右外联接,使用该语句可以返回右表中的所有记录以及左表与右表中联结字段相等的记录。
背景信息
外联接(OUTTER JOIN)是使用比较运算符对两个表中的数据进行比较,联接结果不仅包含符合联接条件的行,同时也包含不符合条件的行。
外联接包括全联接(FULL JOIN)、左联接(LEFT JOIN)和右联接(RIGHT JOIN)。外联接返回满足联接条件的所有行,同时从一个表返回没有使用的行,在另一个表相应位置填充 NULL。
本文主要提供右联接的示例指导,全联接相关示例请参见 全联接,左联接相关示例请参见 左联接。
RIGHT JOIN 语法
外联接语句中一般包括左表和右表,出现在 JOIN 子句最左边的为左表,出现在 JOIN 子句最右边的为右表。
RIGHT JOIN 的语法格式如下:
SELECT select_list FROM table_name1 RIGHT JOIN table_name2 ON join_condition
[ WHERE query_condition ]
[ ORDER BY column_list ];
其中,table_name1 为左表,table_name2 为右表。
示例
创建示例表并插入适当数据。
CREATE TABLE tbl_a(id INT NOT NULL PRIMARY KEY, name VARCHAR(50));
Query OK, 0 rows affected
CREATE TABLE tbl_b(number INT NOT NULL PRIMARY KEY, value INT);
Query OK, 0 rows affected
CREATE TABLE tbl_c(id INT NOT NULL , name VARCHAR(50));
Query OK, 0 rows affected (0.081 sec)
INSERT INTO tbl_a VALUES(1,'ab'),(2,'cd'),(3,'ef'),(4,'gh');
Query OK, 4 rows affected
Records: 4 Duplicates: 0 Warnings: 0
INSERT INTO tbl_b VALUES(1,1001),(3,1003),(5,1005);
Query OK, 3 rows affected
Records: 3 Duplicates: 0 Warnings: 0
INSERT INTO tbl_c VALUES(1,'aa'),(2,'dd'),(6,'ee'),(7,'hh'),(9,'xx');
Query OK, 5 rows affected (0.005 sec)
Records: 5 Duplicates: 0 Warnings: 0