我在下面给出的查询中是否有任何错误。
SELECT * FROM employee Left JOIN bonus;
我已经在线使用 sqlfiddle 执行了此操作。它向我显示了一个错误。
并且还面临完全外部连接的问题。
SELECT * FROM bonus FULL OUTER JOIN employee ON employee.id=bonus.id;
我在下面给出的查询中是否有任何错误。
SELECT * FROM employee Left JOIN bonus;
我已经在线使用 sqlfiddle 执行了此操作。它向我显示了一个错误。
并且还面临完全外部连接的问题。
SELECT * FROM bonus FULL OUTER JOIN employee ON employee.id=bonus.id;
使用 LEFT 或 RIGHT 连接时必须指定连接列。您的 Employee 和 Bonus 表是如何关联的?例如,如果两个表都包含“EmployeeId”列,那么您将执行以下操作:
SELECT * FROM employee LEFT JOIN bonus ON employee.EmployeeId = bonus.EmployeeId
如果你不使用ON
,所有的连接都会自动变成CROSS JOIN
. 你可以用CROSS JOIN
. 这是 mysql 文档:http ://dev.mysql.com/doc/refman/5.5/en/join.html
每个文档: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 中,on 对于连接是可选的,但对于左外连接或右外连接不是。