2013-10-03 101 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上是可选的加入,而不是左外连接或右外连接。