2013-10-03 108 views
-1

我在下面給出的查詢中是否有任何錯誤。爲什麼左連接顯示錯誤?

SELECT * FROM employee Left JOIN bonus; 

我已經使用sqlfiddle在線執行此操作。它向我顯示了一個錯誤。

,也正在面臨的問題進行全面外部聯接。

SELECT * FROM bonus FULL OUTER JOIN employee ON employee.id=bonus.id; 
+0

什麼錯誤給你? – Sal00m

+0

發佈sql小提琴。 – Mihai

+0

我在線執行了此查詢。在W3學校工作正常。但是它的sqlfiddle顯示「你的SQL語法有錯誤;檢查與你的MySQL服務器版本相對應的手冊,以便在第一行使用正確的語法」select * from employee employee left join bonus「 –

回答

1

使用LEFT或RIGHT連接時必須指定連接列。你的員工和獎金錶如何相關?如果兩個表包含例如一個「僱員」一欄,那麼你會做這樣的事情:

SELECT * FROM employee LEFT JOIN bonus ON employee.EmployeeId = bonus.EmployeeId 
+0

匹配表是您加入它們時的可選項。 – Kuzgun

+0

啊 - 我沒有注意到mysql標籤。在MS SQL Server上,使用沒有ON子句的LEFT JOIN會給你一個錯誤。 – Dan

+0

它有時會發生:) – Kuzgun

0

如果不使用ON,所有連接都自動成爲CROSS JOIN。你可以用CROSS JOIN來試試。下面是MySQL文檔:http://dev.mysql.com/doc/refman/5.5/en/join.html

+0

使用LEFT或RIGHT時不是這樣。在這種情況下,必須或使用子句指定的,否則,你得到一個錯誤 - 也對MySQL的(我只是測試它使用sqlfiddle:http://sqlfiddle.com/#!2/a2581/14559) – Dan

+0

@丹是使用on子句是內部連接和外部連接的持久性。如果不使用,它將作爲交叉連接。我的理解是否正確。 –

0

每文檔:http://dev.mysql.com/doc/refman/5.5/en/join.html

join_table: 
    table_reference [INNER | CROSS] JOIN table_factor [join_condition] 
    | table_reference STRAIGHT_JOIN table_factor 
    | table_reference STRAIGHT_JOIN table_factor ON conditional_expr 
    | table_reference {LEFT|RIGHT} [OUTER] JOIN table_reference join_condition 
    | table_reference NATURAL [{LEFT|RIGHT} [OUTER]] JOIN table_factor 

在MySQL上是可選的加入,而不是左外連接或右外連接。