2009-05-09 2 views

Antwort

3

Joins sind synticatic Zucker, einfacher zu lesen.

Ihre Anfrage würde mit einem Join wie folgt aussehen:

SELECT bugs.id, bug_color.name 
FROM bugs 
INNER JOIN bug_color ON bugs.id = bug_color.id 
WHERE bugs.id = 1 

Mit mehr als zwei Tabellen, Joins helfen eine Abfrage besser lesbar zu machen, durch die Bedingungen im Zusammenhang mit einem Tisch in einem Ort zu halten.

+0

Ich bin nicht ganz sicher, dass "syntaktischer Zucker" der richtige Ausdruck ist. Das Schlüsselwort "JOIN" hat eine semantische Bedeutung - unabhängig davon, ob die db-Engine darauf reagiert, ist es gleichgültig. – Benson

+0

Ich glaube, was Andomar mit "syntaktischer Zucker" meint, ist, dass für innere Joins die beiden Formen (altmodisch und ANSI JOIN mit INNER JOIN) äquivalent sind. Bei den äußeren Verbindungen sind die Stile jedoch sehr unterschiedlich, weshalb ich nicht ganz damit einverstanden sein kann, dass es sich um syntaktischen Zucker handelt. – sleske

0

Join-Syntax ermöglicht Outer-Joins, so können Sie gehen:

SELECT bugs.id, bug_color.name 
FROM bugs, bug_color 
LEFT OUTER JOIN bug_color ON bugs.id = bug_color.id 
WHERE bugs.id = 1 
+0

In Oracle können Sie Outer-Joins mit der from-Syntax verwenden. Es verwendet den (+) Modifikator, wie "wo bugs.id = bug_color.id (+)" – Andomar

+0

Sie können OUTER JOINS ohne Joinsyntax ausführen, mit * = oder = * in der entsprechenden WHERE-Klausel –

+1

* = wird normalerweise nicht unterstützt in SQL Server oder in ANSI SQL. –

2

Das join Schlüsselwort ist die neue Art Tabellen beizutreten.

Als ich SQL gelernt habe, existierte es noch nicht, also wurde der Beitritt so gemacht, wie du es in deiner Frage zeigst.

Heute haben wir Dinge wie Verknüpfungen und Aliase die Abfragen besser lesbar zu machen:

select 
    b.id, c.name 
from 
    bugs as b 
inner join 
    bug_color as c on c.id = b.id 
where 
    b.id = 1 

Auch gibt es andere Variationen des Joins, wie left outer join, right outer join und full join, dass härter ist mit der alten Syntax zu erreichen .

Verwandte Themen