SQL - In selber Tabelle Werte Vergleichen

3 Antworten

Du kannst die selbe Tabelle unter verschiedenen Namen ansprechen, wenn Du der Tabelle Alias-Namen vergibst. Das geschieht, wenn die Tabelle z.B. tabnam heißt, mit ...from tabnam a, tabnam b... Du hast jetzt die Tabellen a und b, die Du wie verschiedene Tabellen ansprechen kannst, obwohl es sich um die selbe Tabelle handelt. Die Felder musst Du dann im Weiteren qualifizieren, d.h. Du schreibst ... a.feld1 = b.feld2 ... Das bedeutet dann feld1 in der Tabelle a und feld2 in der Tabelle b.

Du kannst die selbe Tabelle über einen Alias ansprechen:

select .... from t a where t.feld1 = a.feld1

oder auch

select .... from tab1 a, tab1 b where a.feld = b.feld


ranton 
Fragesteller
 20.12.2010, 09:36

problem dabei ist, dass ich nun auch doppelt so viele ergebnisse habe, da er ja "beide" tabellen abfragt

0
emhaj  20.12.2010, 09:45
@ranton

du musst in der where-klausel jeweils die auswahl für die tabellen A und B näher einschränken. Z.B.

where a.type = 'C' and b.type = 'D' and a.feld = b.feld .......

0

SELECT * FROM tabelle WHERE spalte1 = spalte2 AND spalte2 = spalte3;

Oder habe ich etwas falsch verstanden?