SQL.... Abfrage von zwei Tabellen
Gregor
- datenbank
0 Grummelchen0 Tom20 Gregor
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
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
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.
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