Note that there are some explanatory texts on larger screens.

plurals
  1. POMysql joins clarifications
    primarykey
    data
    text
    <pre><code>SELECT * FROM left_table OUTER JOIN right_table on left_table.name = righ t_table.name; SELECT * FROM left_table FULL OUTER JOIN right_table on left_table.name = right_table.name; </code></pre> <p>These 2 statements gives below error. Are they not valid mysql statements ?</p> <pre><code>ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'OUTER JOIN right_table on left_table.name = right_table.name' at line 1 mysql&gt; SELECT * FROM left_table RIGHT OUTER JOIN right_table on left_table.name = right_table.name; </code></pre> <p>and </p> <pre><code>mysql&gt; SELECT * FROM left_table RIGHT JOIN right_table on left_table.name = right_table.name; </code></pre> <p>give same result. So whats the basic use of adding OUTER in statement?</p> <p><em>I want to know what special purpose does it serve by adding OUTER in statement where as without adding it also its returning same output.</em></p> <p>---- Update ----</p> <p>Ok i give my table structure </p> <pre><code>mysql&gt; select * from left_table; +----+---------+ | id | name | +----+---------+ | 1 | Pirate | | 2 | money | | 5 | Ninja | | 6 | pradeep | +----+---------+ </code></pre> <p>and </p> <pre><code>mysql&gt; select * from right_table; +----+-------------+ | id | name | +----+-------------+ | 1 | Rutabaga | | 2 | Pirate | | 3 | Darth Vader | | 4 | Ninja | +----+-------------+ </code></pre> <p>I ran statements like </p> <pre><code>mysql&gt; SELECT * FROM left_table LEFT JOIN right_table on left_table.name = right _table.name where right_table.id is NULL; +----+---------+------+------+ | id | name | id | name | +----+---------+------+------+ | 2 | money | NULL | NULL | | 6 | pradeep | NULL | NULL | +----+---------+------+------+ </code></pre> <p>and </p> <pre><code>mysql&gt; SELECT * FROM left_table LEFT OUTER JOIN right_table on left_table.name = right_table.name where right_table.id is NULL; +----+---------+------+------+ | id | name | id | name | +----+---------+------+------+ | 2 | money | NULL | NULL | | 6 | pradeep | NULL | NULL | +----+---------+------+------+ </code></pre> <p>They still produce the same output. SO if any1 can show some statement where the results will differ. i would be able to understand it.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload