Home >Database >Mysql Tutorial >Are `FROM Table1 LEFT JOIN Table2` and `FROM Table2 RIGHT JOIN Table1` Always Interchangeable?

Are `FROM Table1 LEFT JOIN Table2` and `FROM Table2 RIGHT JOIN Table1` Always Interchangeable?

DDD
DDDOriginal
2025-01-14 15:46:44805browse

Are `FROM Table1 LEFT JOIN Table2` and `FROM Table2 RIGHT JOIN Table1` Always Interchangeable?

SQL LEFT JOIN and RIGHT JOIN: Are They Always Equivalent?

SQL's LEFT JOIN and RIGHT JOIN clauses combine data from two tables. While seemingly interchangeable in some cases, a key distinction exists.

Let's examine two tables:

<code class="language-sql">CREATE TABLE Table1 (id INT, Name VARCHAR(10));
CREATE TABLE Table2 (id INT, Name VARCHAR(10));</code>

Populating Table1:

<code>Id | Name
---|-----
1  | A
2  | B</code>

And Table2:

<code>Id | Name
---|-----
1  | A
2  | B
3  | C</code>

The queries:

<code class="language-sql">SELECT *
FROM Table1
LEFT JOIN Table2 ON Table1.id = Table2.id;

SELECT *
FROM Table2
RIGHT JOIN Table1 ON Table1.id = Table2.id;</code>

yield identical results in this specific instance. Both match rows based on Table1.id = Table2.id.

However, consider this alternative LEFT JOIN:

<code class="language-sql">SELECT *
FROM Table2
LEFT JOIN Table1 ON Table2.id = Table1.id;</code>

This query returns all rows from Table2, including those without matches in Table1. A RIGHT JOIN (e.g., FROM Table1 RIGHT JOIN Table2) would behave conversely, omitting such unmatched rows.

Therefore, while FROM Table1 LEFT JOIN Table2 and FROM Table2 RIGHT JOIN Table1 might produce similar results under specific conditions, the join direction significantly affects the completeness of the output. They are not universally interchangeable.

The above is the detailed content of Are `FROM Table1 LEFT JOIN Table2` and `FROM Table2 RIGHT JOIN Table1` Always Interchangeable?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn