在这两种情况下,即在查询中不使用“RIGHT”或“LEFT”关键字时,MySQL 都会将其作为 INNER JOIN 查询返回结果。这是因为 RIGHT、LEFT 和 INNER JOIN 之间的唯一区别是 RIGHT 或 LEFT 关键字。为了理解它,我们以名为 tbl_1 和 tbl_2 的两个表为例,它们具有以下数据 -
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 将返回什么?的详细内容。更多信息请关注PHP中文网其他相关文章!