Announcement

Collapse
No announcement yet.

Join über drei Tabellen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Join über drei Tabellen

    Hi,


    ich möchte ein Join über drei Tabellen ausführen. Die Bedingung ist, dass die ID bei allen drei gleich seien muss.
    Bei zwei Tabellen klappt es. Bei drei Tabellen bekomme ich aber anstatt drei, neun Tuppel zurück(kartesich).

    tab A : (id , A1, A2)
    tab B : (id , B1, B2)
    tab C : (id , C1, C2)

    select a.id , a.A1, b.B1, c.C1
    from A as a , B as b , C as c
    where a.id = b.id
    and b.id = c.id
    and ......

    Danke vorab!
    Gruß
    Alph

  • #2
    Hi,

    schreibe bitte nochmal genau, was du zurück kriegst und was du erwartest. Wie sehen denn die Daten der einzelnen Tabellen aus?

    So verstehe ich deine Frage bisher:
    [highlight=sql]
    SELECT A.id , A.A1, B.B1, C.C1
    FROM A
    INNER JOIN B ON B.id = A.id
    INNER JOIN C ON C.id = A.id
    [/highlight]
    "(...) deshalb mag ich Binärtechnik. Da gibt es nur drei Zustände: High, Low und Kaputt." (Wau Holland)

    Viele Grüße Novi

    Comment


    • #3
      Hi,

      Ich habe weitere Bedingungen mitberücksichtigen müssen, und zwar die FK der Tabellen.

      tab A : (id , A1, A2)
      tab B : (id , B1, B2)
      tab C : (id , C1, C2)

      Also so sieht die Lösung aus:

      Code:
      select a.id , a.A1, b.B1, c.C1 
      from A as a , B as b , C as c
      where a.id = b.id
      and  b.id = c.id
      and  a.a1 = b.b1
      and  b.b2 = c.c2
      and .......

      Comment


      • #4
        Trotzdem solltest du es über JOIN machen. Wegen der besseren Übersichtlichkeit sollten die JOIN-Bedingungen von den WHERE-Bedingungen getrennt werden. JOIN sagt, was und wie verknüpft werden soll; WHERE beschreibt die Beschränkungen der Auswahl. Also:
        [highlight=sql]select a.id , a.A1, b.B1, c.C1
        from A as a
        join B as b on a.id = b.id and a.a1 = b.b1
        join C as c on b.id = c.id and b.b2 = c.c2
        where ... /* echte Auswahlbedingungen */[/highlight]
        Gruß Jürgen

        Comment

        Working...
        X