Warum linker Join den Fehler anzeigen? - mysql, linker Join, äußerer Join

Gibt es einen Fehler in der Abfrage, die ich unten gegeben habe.

SELECT * FROM employee Left JOIN bonus;

Ich habe dies mit dem sqliddle online ausgeführt. Es zeigt mir einen Fehler.

und ich stehe auch dem Problem für volle äußere Verbindung gegenüber.

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

Antworten:

1 für die Antwort № 1

Sie müssen eine Join-Spalte angeben, wenn Sie LINKS verwendenoder RECHTS beitreten. Wie hängen Ihre Mitarbeiter- und Bonus-Tabellen zusammen? Wenn beide Tabellen beispielsweise eine "EmployeeId" -Spalte enthalten, würden Sie Folgendes tun:

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

0 für die Antwort № 2

Wenn du nicht benutzt ON, alle Joins automatisch werden CROSS JOIN. Sie können es mit ausprobieren CROSS JOIN. Hier ist die MySQL-Dokumentation: http://dev.mysql.com/doc/refman/5.5/en/join.html


0 für die Antwort № 3

Pro Dokumentation: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

In MySQL ist das on optional für Join, aber nicht für linken äußeren Join oder rechten äußeren Join.


Speisekarte