如果我在编写 RIGHT JOIN 或 LEFT JOIN 查询时不使用关键字“RIGHT”或“LEFT”,MySQL 将返回什么?

如果我在编写 RIGHT JOIN 或 LEFT JOIN 查询时不使用关键字“RIGHT”或“LEFT”,MySQL 将返回什么?

mysql> Select * from tbl_1;
+—-+——–+
| Id | Name |
+—-+——–+
| 1 | Gaurav |
| 2 | Rahul |
| 3 | Raman |
| 4 | Aarav |
+—-+——–+
4 rows in set (0.00 sec)

mysql> Select * from tbl_2;
+—-+———+
| Id | Name |
+—-+———+
| A | Aarav |
| B | Mohan |
| C | Jai |
| D | Harshit |
+—-+———+
4 rows in set (0.00 sec)

现在,使用关键字 RIGHT 进行 RIGHT JOIN 的查询可以如下 –

mysql> SELECT tbl_1.id,tbl_2.id FROM tbl_1 RIGHT JOIN tbl_2 ON tbl_1.name = tbl_2.name;
+——+—-+
| id | id |
+——+—-+
| 4 | A |
| NULL | B |
| NULL | C |
| NULL | D |
+——+—-+
4 rows in set (0.00 sec)

登录后复制

现在,在以下查询中我们没有使用关键字 RIGHT –

mysql> Select tbl_1.id,tbl_2.id FROM tbl_1 JOIN tbl_2 ON tbl_1.name = tbl_2.name;
+—-+—-+
| id | id |
+—-+—-+
| 4 | A |
+—-+—-+
1 row in set (0.00 sec)

登录后复制登录后复制

从上面的结果集中我们可以观察到区别,在不使用关键字 ‘RIGHT’ 的情况下,MySQL 会将其作为 INNER JOIN 的查询并相应地返回结果。

现在,使用关键字 LEFT 进行 LEFT JOIN 的查询可以如下 –

mysql> SELECT tbl_1.id,tbl_2.id FROM tbl_1 LEFT JOIN tbl_2 ON tbl_1.name = tbl_2.name;
+—-+——+
| id | id |
+—-+——+
| 1 | NULL |
| 2 | NULL |
| 3 | NULL |
| 4 | A |
+—-+——+
4 rows in set (0.02 sec)

登录后复制

现在,在以下查询中我们不使用关键字 LEFT –

mysql> Select tbl_1.id,tbl_2.id FROM tbl_1 JOIN tbl_2 ON tbl_1.name = tbl_2.name;
+—-+—-+
| id | id |
+—-+—-+
| 4 | A |
+—-+—-+
1 row in set (0.00 sec)

登录后复制登录后复制

从上面的结果集中我们可以观察到区别,在不使用关键字“LEFT”的情况下,MySQL将其作为INNER JOIN的查询并相应地返回结果。

以上就是如果我在编写 RIGHT JOIN 或 LEFT JOIN 查询时不使用关键字“RIGHT”或“LEFT”,MySQL 将返回什么?的详细内容,更多请关注每日运维网(www.mryunwei.com)其它相关文章!

上一篇 SQL Server 中的均值和众数
下一篇 MySQL IGNORE INSERT 语句有什么用?