Welcome
Guest
, you are in:
<root>
•
Anmelden
CP Wiki
Navigation
¶
CP Solutions
Startseite
domizil+
Startseite
Administration
Administration
Neue Seite
Alle Seiten
Kategorien
Navigations-Pfade
Datei Manager
Neuer Benutzer
Suche im wiki
»
Zurück
Join Where vs Where
Modified on 22/06/2009 10:40
by Manuel Siebert
Categorized as
SQL
((([image| |http://www.cp-austria.at/website/DesktopModules/Wiki/images/Home.gif|MainPage] » [MainPage|Startseite] » [netFramePlattform|netFrame als Plattform Menü] » [TippsundTricks|Tipps und Tricks] » Join Where vs Where | {searchbox} [Search.aspx?FullText=1|Erweiterte Suche]))) {BR} ==JOIN Einschränkung in Vergleich mit der Where Einschränkung== Es ist sehr wichtig zu verstehen wo der Unterschied liegt in der Einschränkung der Datenmenge. Man hat ja zwei verschiedene Möglichkeiten: ===In der WHERE Bedingung=== <code sql>SELECT OB_OBJEKT, OB_BEZEICHNUNG, FK_FUNKTION FROM NET_OBJEKT obj LEFT OUTER JOIN NET_FUNK_ZU fz ON fz.OB_ID = obj.OB_ID WHERE FK_FUNKTION = 11300</code> <BR> *In diesem Fall holt sich der SQL Server zuerst alle Objekte *Dann verknüpft er sich mit der Tabelle NET_FUNK_ZU *Erst jetzt werden die Datensätze eingeschränkt auf FK_FUNKTION = 11300 *Das bedeutet, daß jene Objekte die keine Funktion 11300 haben nun herausfliegen. Dies liegt daran das zuerst mit LEFT JOIN verknüpft wird und erst dann werden mit der Where Bedingung die Datensätze eingeschränkt. ===In der JOIN Bedingung=== <code sql>SELECT OB_OBJEKT, OB_BEZEICHNUNG, FK_FUNKTION FROM NET_OBJEKT obj LEFT OUTER JOIN NET_FUNK_ZU fz ON fz.OB_ID = obj.OB_ID AND FK_FUNKTION = 11300 </code> <BR> *In diesem Fall holt sich der SQL Server zuerst alle Objekte *Dann schränkt er die Tabelle NET_FUNK_ZU = 11300 ein *Dann verknüpft er sich mit der Tabelle NET_FUNK_ZU *Das bedeutet, daß jene Objekte die keine Funktion 11300 haben NICHT rausgeflogen sind, da der SQL Server sich mit einem LEFT JOIN verknüpft hat.
ScrewTurn Wiki
version 3.0.1.400. Some of the icons created by
FamFamFam
.