A right join is another type of outer join, written using the RIGHT JOIN keywords. Every RIGHT JOIN
corresponds to an equivalent LEFT JOIN. The only difference is that the roles of the tables are reversed
relative to the roles in a RIGHT JOIN. That is, the right table is the reference table, so a RIGHT JOIN
produces a result for each row in the right table, whether or not it has any match in the left table.
The previous example showed the result of a LEFT JOIN . The example below is the same statement, but
with a RIGHT JOIN:
mysql> SELECT Name, Language
-> FROM Country
-> RIGHT JOIN CountryLanguage
-> ON Code = CountryCode
-> WHERE CountryCode IS NULL;
Empty set (#.## sec)
Note that the join is now being referenced to the right table CountryLanguage, which yields no results
(empty set).
Syntactically, converting a left join to a right join requires only that the order be reversed in which the
tables are named. It isn't necessary to also reverse the order in which the columns are named in the ON
clause, but it can help make the query clearer to name the columns in the same order as the tables in which
they appear.
corresponds to an equivalent LEFT JOIN. The only difference is that the roles of the tables are reversed
relative to the roles in a RIGHT JOIN. That is, the right table is the reference table, so a RIGHT JOIN
produces a result for each row in the right table, whether or not it has any match in the left table.
The previous example showed the result of a LEFT JOIN . The example below is the same statement, but
with a RIGHT JOIN:
mysql> SELECT Name, Language
-> FROM Country
-> RIGHT JOIN CountryLanguage
-> ON Code = CountryCode
-> WHERE CountryCode IS NULL;
Empty set (#.## sec)
Note that the join is now being referenced to the right table CountryLanguage, which yields no results
(empty set).
Syntactically, converting a left join to a right join requires only that the order be reversed in which the
tables are named. It isn't necessary to also reverse the order in which the columns are named in the ON
clause, but it can help make the query clearer to name the columns in the same order as the tables in which
they appear.
Comments
Post a Comment