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;
這2個語句給出了下面的錯誤。它們不是有效的mysql語句嗎?Mysql加入澄清
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> SELECT * FROM left_table RIGHT OUTER JOIN right_table on left_table.name
= right_table.name;
和
mysql> SELECT * FROM left_table RIGHT JOIN right_table on left_table.name
= right_table.name;
給予同樣的結果。那麼添加OUTER語句的基本用法是什麼?
我想知道它是什麼特殊的目的,通過添加OUTER語句中,而不添加它也返回相同的輸出。
---- ----更新
好吧,我把我的表結構
mysql> select * from left_table;
+----+---------+
| id | name |
+----+---------+
| 1 | Pirate |
| 2 | money |
| 5 | Ninja |
| 6 | pradeep |
+----+---------+
和
mysql> select * from right_table;
+----+-------------+
| id | name |
+----+-------------+
| 1 | Rutabaga |
| 2 | Pirate |
| 3 | Darth Vader |
| 4 | Ninja |
+----+-------------+
我跑了之類的語句
mysql> 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 |
+----+---------+------+------+
和
mysql> 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 |
+----+---------+------+------+
它們仍然產生相同的輸出。如果有的話1可以顯示一些結果會有所不同的聲明。我將能夠理解它。
[SQL Server中的左連接和左外連接]的可能重複(http://stackoverflow.com/questions/406294/left-join-and-left-outer-join-in-sql-server) – Niels
This不是重複的。這是一個MySQL特有的問題。 –
也許這會幫助你http://www.xaprb.com/blog/2006/05/26/how-to-write-full-outer-join-in-mysql/ – AllisonC