rdklie
Goto Top

Mysql Select Befehl über 3 Tabellen?

Guten Tag zusammen!

Ich habe eine kleine Frage bezüglich Mysql.

Zur Fragestellung: Die Frage wäre "Welche Mitglieder organisieren Veranstaltungen in einem bestimmten Ort?"

Ich habe hierzu 3 Tabellen:

Mitglieder_table
| MNr | Name | Vorname |

Organisiert_table
| MNr | VNr |

Veranstaltung_table
| VNr | Ort |

*MNr = Mitglied ID, VNr = Veranstaltungs ID


Bisher habe ich diese Aufgabe mittels diesem Befehl gelöst:
SELECT Name, Vorname FROM Mitglied
WHERE MNr IN (SELECT MNr FROM organisiert WHERE VNr = '1' OR VNr = '3');

Ich habe aber das Gefühl, dass bei wachsenden Veranstaltungen dieser Befehl nicht zu brauchen ist. Da muss es doch ne Möglichkeit geben mit mehr Logik, in der man den Ort gezielt abholen kann?

Hoffe mir kann einer helfen.

Beste Grüsse
Rdklie

Content-Key: 257895

Url: https://administrator.de/contentid/257895

Ausgedruckt am: 29.03.2024 um 06:03 Uhr

Mitglied: killtec
killtec 17.12.2014 um 10:07:24 Uhr
Goto Top
Hi,
such mal nach Join.
Damit kannst du Tabellen "verbinden". Es gibt Left, Inner und Right. Je nachdem was du von wo nach wo joinen willst brauchst du die unterschiedlichen.

Gruß
Mitglied: rdklie
rdklie 17.12.2014 um 10:47:15 Uhr
Goto Top
Danke für den Tipp, komme jedoch nicht recht mit.
Die Abfrage ist ja. Welches Mitglied mit MNr organisiert Veranstaltungen mit VNr mit dem Ort XXX in Veranstaltungen.

Wie wäre dann der Aufbau vom Statement? braucht es 2 Joins? oder kann ich mit dem oben angeführtem Befehl weiterarbeiten?

Beste Grüsse
Mitglied: killtec
killtec 17.12.2014 um 12:13:39 Uhr
Goto Top
Hi, du brauchst dann zwei Koins,
aus dem Kopf weiß ich leider nicht genau, wie das SQL Statement dann aussehen müsste.


Gruß
Mitglied: Gersen
Lösung Gersen 17.12.2014 aktualisiert um 13:25:35 Uhr
Goto Top
Hallo,

Du brauchst doch bloß die Tabellen im SQL-Statement zu verknüpfen:
select t1.mnr, t1.vorname, t1.name, t2.vnr, t3.ort from mitglieder t1, organisiert t2, veranstaltung t3 where t1.mnr = t2.mnr and t2.vnr = t3.vnr
Für eine bestimmte MNr einfach die where-Bedingung ergänzen:
and t1.mnr = ...

Gruß,
Gersen
Mitglied: ITvortex
Lösung ITvortex 17.12.2014 aktualisiert um 13:25:38 Uhr
Goto Top
Zitat von @Gersen:

Hallo,

Du brauchst doch bloß die Tabellen im SQL-Statement zu verknüpfen:
select t1.mnr, t1.vorname, t1.name, t2.vnr, t3.ort from mitglieder t1, organisiert t2,
> veranstaltung t3 where t1.mnr = t2.mnr and t2.vnr = t3.vnr
Für eine bestimmte MNr einfach die where-Bedingung ergänzen:
and t1.mnr = ...

Gruß,
Gersen

Ja aber dann:
From tabelle1 t1, tabelle2 t2, tabelle3 t3 
usw...

Liebe Grüße
ITvortex
Mitglied: rdklie
rdklie 17.12.2014 um 13:24:45 Uhr
Goto Top
Hallo Gersen

select t1.Name, t1.Vorname From Mitglied t1, organisiert t2, Veranstaltung t3 Where t1.MNr = t2.MNr and t2.Vnr = t3.vnr and t3.Ort = 'XYZ'

Klappt wunderbar, danke!

Gruss