LEFT JOIN和RIGHT JOIN是SQL中JOIN操作的两种类型,它们的主要区别在于选择哪个表作为基本表。
LEFT JOIN:以左表为基准来关联右表,结果集包含左表所有的数据以及其关联的右表数据,如果右表没有匹配的关联数据,那么对应的结果为空。如下示例:
SELECT *
FROM TableA
LEFT JOIN TableB ON TableA.id = TableB.id;
在这个例子中,TableA是左表。 即使在TableB中没有相应id值的行,查询仍将返回TableA的所有行,并在TableB的相关列中显示null值。
RIGHT JOIN:以右表为基准来关联左表,结果集包含右表所有的数据以及其关联的左表数据,如果左表没有匹配的关联数据,那么对应的结果为空。如下示例:
SELECT *
FROM TableA
RIGHT JOIN TableB ON TableA.id = TableB.id;
在这个例子中,TableB是右表。 查询也将返回2个表中所有的数据,无论是否有匹配的行。
总体来说,LEFT JOIN保留左表中所有的数据,右表中没有匹配的数据赋值为NULL。RIGHT JOIN保留右表中所有的数据,左表中没有匹配的数据赋值为NULL。如果您想包括两个表中的所有行并作为联接结果返回,则应该使用FULL OUTER JOIN或UNION操作符。