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
    3

    Ausgabe:

    SP1 SP2
    1 4
    1 5
    2 4
    2 5
    3 4
    3 5

    gewollte Ausgabe:

    SP1 SP2
    1 4
    2 5
    3

    Klappt 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.col2

    In 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".


Anmelden zum Antworten