Gregor: SQL.... Abfrage von zwei Tabellen

Hallöchen Gemeinde...

ich habe ein kleines(großes) Problem

ich habe zwei Tabellen die über eine ID verknüpft sind. In der einen Tabelle stehen zur ID gehörend nur 1Satz Daten und in der zweiten Tabelle aber leider mehrere.

Nun möchte ich in einer SQL-Abfrage mir alles zu einer ID gehörendes ausgeben lassen.

SELECT *

FROM TABELLE1, TABELLE2

WHERE ID=5

Leider verknüpft das SQL ja alles mit allem, und so bekomme ich für jeden Satz Daten in Tabelle2 eine Verknüpfung.

Nun meine Frage:

Versuche das Problem mit GROUP BY zu lösen scheiterten.
Mein durchstöbern im Internet hat mir zwar mehrere Funktionen offenbart die aber alle irgendwie nicht funktionieren...z.B.
UNION,INTERSECT,JOIN

vielleicht hat jemand von euch ne Idee, oder kann mir einen Tipp geben wo zu dem Thema Hilfe finde

ein für Hilfe dankbarer
Gregor

  1. Hej Gregor,

    vielleicht verstehe ich Dich falsch, aber wie sieht es mit

    SELECT *

    FROM TABELLE1 TAB1, TABELLE2 TAB2

    WHERE TAB1.ID=5 AND TAB1.ID=TAB2.ID;

    aus?

    Marko

  2. Hallihallo
    Die Aufgabe lässt sich ziemlich leicht mit einem Join erledigen. Zu beachten ist jedoch, dass es drei Joins gibt: left join, right join und inner join. Zudem habe ich bemerkt, dass die Syntax zwischen einem Join in einer MySQL-DB und einer MS-Access-DB sich ein wehnig unterscheiden, wenn man mehrere Joins verwendet. Ich mag die MySQL-Syntax etwas lieber. Sie sieht, soweit ich mich errinnern kann, etwa folgendermassen aus:

    SELECT TABLE1.NAMES, TABLE1.PHONE, TABLE2.PLACE, TABLE2.ZIPCODE
     FROM TABLE1
      LEFT JOIN TABLE2 ON TABLE1.PLACEID = TABLE2.PLACE

    In diesem Beispiel hast du zwei Tablellen: TABLE1 mit den Namen, Telefonnummern und einer ID die sich auf die ID der Tabelle TABLE2 bezieht. In der TABLE2 hat jeder Ort eine ID und eine Postleitzahl.
    Dies sollte in den meisten DBS funktionieren. Ein relativ gutes SQL-Tutorial findest du unter www.w3schools.com.

    mfg

    Tom2

    PS: Wie gesagt, ich bin nicht mehr ganz fit in SQL, aber es sollte in etwa stimmen.

    1. Hi Tom2,

      leider bringt er die Fehlermeldung:

      SELECT TABLE1.NAMES, TABLE1.PHONE, TABLE2.PLACE, TABLE2.ZIPCODE
      FROM TABLE1
        LEFT JOIN TABLE2 ON TABLE1.PLACEID = TABLE2.PLACE

      *
      ERROR at line 3:
      ORA-00933: SQL command not properly ended

      Vielleicht liegt es daran das ich nicht MySQL benutze sondern über ODBC auf eine Oracle-Datenbank zufgreife....kann es sein das hier die Syntax anders ist?
      Soweit wie ich das verstanden habe fügt Join 2Tabellen zusammen und benötigt dazu nach ON die Verknüpfung zwischen den Tabellen...richtig?

      Ein relativ gutes SQL-Tutorial findest du unter www.w3schools.com.

      Thanks...genau sowas hab ich gesucht...dafür auf jeden Fall schon mal ein großes Dankeschön!

      grüßle  Gregor