SQL Befehl
-
Hallo,
ich habe ein kleines Problem mit SQL:
select a.Spalte1 as SP1, b.Spalte2 as SP2 from table1 a, table2 b
vorhandene Datensätze in table1 und table2:
Spalte1 Spalte2
1 4
2 5
3Ausgabe:
SP1 SP2
1 4
1 5
2 4
2 5
3 4
3 5gewollte Ausgabe:
SP1 SP2
1 4
2 5
3Klappt auch nicht mit symmetrischen Datensätzen!
Hat einer eine Idee, was ich falsch mache?
Gruß und Danke
Michael
-
Das liegt an der SQL-Syntax!
Wenn du in der WHERE-Bedingung nichts einschränkst, dann wird bei einem JOIN immer das Kartesische Produkt gebildet.Daher sollte dein Befehl ungefähr so lauten:
SELECT a.col1 Splate1, b.col2 Splate2
FROM tabelle1 a, tabelle2 b
WHERE a.col1 = b.col1
evtl auch noch
AND a.col2 = b.col2In der WHERE-Bedingung solltest du die Spalten angeben, die bei den zu JOINenden Tabellen gleich sind (meist ist dies der Primärschlüssel).
Du solltest dies jedoch in jedem SQL Buch/Tutorial nachlesen können
-
Original erstellt von Jack33:
Hat einer eine Idee, was ich falsch mache?Du hast im falschen Forum gefragt.
Verschoben nach "Rund um".