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

Printed on: May 9, 2024 at 00:05 o'clock

Member: killtec
killtec Dec 17, 2014 at 09:07:24 (UTC)
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ß
Member: rdklie
rdklie Dec 17, 2014 at 09:47:15 (UTC)
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
Member: killtec
killtec Dec 17, 2014 at 11:13:39 (UTC)
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ß
Member: Gersen
Solution Gersen Dec 17, 2014 updated at 12:25:35 (UTC)
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
Member: ITvortex
Solution ITvortex Dec 17, 2014 updated at 12:25:38 (UTC)
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
Member: rdklie
rdklie Dec 17, 2014 at 12:24:45 (UTC)
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