Anfägerfrage: was ist der Unterschied zwischen einem "inner join" und einer "where" Klausel ?

24/08/2009 - 17:59 von Andreas Hauck | Report spam
Hi Fachleute,

hatte zwei, mit Ausnahme von Feld1, identische Tabellen verknüft:

SELECT tbl1.Feld1, tbl1.Feld2, tbl1.Feld3
FROM tbl1 INNER JOIN tbl2 ON (tbl1.Feld3 = tbl2.Feld3) AND (tbl1.Feld2 =
tbl2.Feld2)
Da Feld3 "Null"-Werte enthalten kann, kam es zu einer wundersamen Vermehrung
von Daten.

SELECT tbl1.Feld1, tbl1.Feld2, tbl1.Feld3
FROM tbl1, tbl2
WHERE ((tbl1.Feld2)=[tbl2].[feld2]) AND
(NZ(tbl1.Feld3,"")=NZ([tbl2].[feld3],""));
funktionieret u.a. wg. der NZ-Funktion prima.

Wo liegt jetzt eigentlich der Unterschied zwischen einem INNER JOIN und
einem WHERE ?

Gruß Andreas
 

Lesen sie die antworten

#1 Mark Doerbandt
24/08/2009 - 18:39 | Warnen spam
Hallo, Andreas,

Andreas Hauck:

hatte zwei, mit Ausnahme von Feld1, identische Tabellen verknüft:

SELECT tbl1.Feld1, tbl1.Feld2, tbl1.Feld3
FROM tbl1 INNER JOIN tbl2 ON (tbl1.Feld3 = tbl2.Feld3) AND (tbl1.Feld2 =
tbl2.Feld2)
Da Feld3 "Null"-Werte enthalten kann, kam es zu einer wundersamen Vermehrung
von Daten.

SELECT tbl1.Feld1, tbl1.Feld2, tbl1.Feld3
FROM tbl1, tbl2
WHERE ((tbl1.Feld2)=[tbl2].[feld2]) AND
(NZ(tbl1.Feld3,"")=NZ([tbl2].[feld3],""));
funktionieret u.a. wg. der NZ-Funktion prima.

Wo liegt jetzt eigentlich der Unterschied zwischen einem INNER JOIN und
einem WHERE ?



das kommt auf das Backend an: der SQL-Server optimiert die Abfragen eh
selbstàndig. In Access z.B. ist die erste Variante aktualisierbar, die
zweite nicht. Dass die NULL anders behandelt wird, liegt natürlich an
dem Nz().

Gruss - Mark

Informationen fuer Neulinge in den Access-Newsgroups unter
http://www.doerbandt.de/Access/Newbie.htm

Bitte keine eMails auf Newsgroup-Beitràge senden.

Ähnliche fragen