2009-06-12 5 views
2

Angenommen, dies ist der richtige Ansi SQL-Syntax für eine linken Outer-Joins:Übersetze ich Ansi OUTER JOIN-Syntax korrekt in ältere Joinsyntax von Sybase (* =)?

SELECT * 
FROM employee LEFT OUTER JOIN department 
      ON employee.DepartmentID = department.DepartmentID 

Und das ist die richtige Ansi SQL-Syntax für eine rechte äußere Verknüpfung:

SELECT * 
FROM employee RIGHT OUTER JOIN department 
      ON employee.DepartmentID = department.DepartmentID 

Ist dies der ältere Sybase entspricht einem linken äußeren jo in:

SELECT * FROM employee, department 
WHERE employee.DepartmentID *= department.DepartmentID 

und das ist der ältere Sybase Äquivalent eines rechte äußere Verknüpfung:

SELECT * FROM employee, department 
WHERE employee.DepartmentID =* department.DepartmentID 

Also haben wir die * auf der linken Seite des Gleichheits für eine linke Außen unterzeichnen Join und auf der rechten Seite des Gleichheitszeichens für einen rechten äußeren Join.

Ist das korrekt?

Antwort

1

Ja, das ist richtig

3

*= einem linken äußeren entspricht verbinden und ... =* auf eine rechte äußere Verknüpfung (wie man hätte erraten)

Sie interessiert sein, dass beachten In älteren Sybase ASE-Versionen gibt es keine Unterstützung für *=*. Semantics and compatibility of Transact-SQL outer joins erklärt, warum (PDF)

+1

Vincent - die Sternchen wurden angezeigt, ich hoffe, es macht Ihnen nichts aus, dass ich sie mit einem Backslash bearbeitet –

1

Warum sollten Sie von der linken Join auf die ältere Syntax übersetzen, sollten Sie nicht von der älteren Syntax auf die bevorzugte neuere Standard übersetzen? Ich weiß nichts über Sybase, aber da SQl Server auf Sybase basiert, vermute ich, dass es das gleiche Problem hat, dass die ältere Syntax nicht immer korrekt als äußere Verknüpfung interpretiert wird. Manchmal interpretiert die Datenbank sie als Cross-Join. Daher rate ich davon ab, sie zu verwenden, es sei denn, Sie greifen auf eine Datenbank in einer alten Version zu, in der die neuere Syntax nicht verfügbar ist.

2

ja. aber manchmal diese zwei können ein wenig anders sein, wenn die Verarbeitung der Ergebnismenge von wo

Verwandte Themen