Welcome Guest, you are in: Anmelden

CP Wiki

RSS RSS

Navigation



  1. Administration

Suche im wiki
»
 » Startseite » netFrame als Plattform Menü » Tipps und Tricks » Join Where vs Where | » Erweiterte Suche

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

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
  • 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

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
  • 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.