SQL Join mit einer Tabelle aus mehreren Spalten

louS

Mitglied
Hi,
ich hab die Tabelle Genres und Filme.
In der Filme Tabelle u.a. eine Spalte Genre dort wird die id aus Genres eingetragen (g_id). In Genres befindet sich g_id und g_title

Im Frontend holt er sich dann zum jeweiligen Film das genre aus der Genre tabelle mit:

SELECT * FROM Filme JOIN Genres ON Genre = g_id

Den Titel kann ich dann per echo [g_title] ausgeben denn g_title befindet sich in der Tabelle Genres

Sooooo jetzt kommt mein Problem :)
In der Filme Tabelle befinden sich auch die Spalten Schauspieler1, Schauspieler2, Schauspieler3 und Schauspieler4.

Und ich hab eine Tabelle namens Schauspieler, dort sind s_id und s_name drin.

In der Filme Tabelle werden in den Schauspieler spalten die IDs aus Tabelle Schauspieler einegtragen.

Aber ich bekomm die Join Abfrage einfach nicht hin oder bzw das echo :(

SELECT * FROM Filme JOIN Schauspieler ON Schauspieler1 = s_name

Kann mir da vielleicht einer helfen?

Danke vielmals
 
In der Filme Tabelle werden in den Schauspieler spalten die IDs aus Tabelle Schauspieler einegtragen.
SELECT * FROM Filme JOIN Schauspieler ON Schauspieler1 = s_id

Wobei natürlich der Aufbau nicht gerade Umwerfend ist.
Besser währen folgende Tabellen:
FILME
SCHAUSPIELER
FILME_SCHAUSPIELER (bestehend aus f_id und s_id)
 
SELECT * FROM Filme JOIN Schauspieler ON Schauspieler1 = s_id

Naja damit bekomm ich doch nur "Schauspieler1" aus "Filme" und wie krieg ich die relation zu "schauspieler" aus "Schauspieler2?" :D
 
Mit Join wirds schnell unlesbar

Code:
SELECT  
    f.*,
    s1.s_name AS SCHAUSPILER1_NAME,
    s2.s_name AS SCHAUSPILER2_NAME
FROM 
    Filme AS f,
    Schauspieler AS s1,
    Schauspieler AS s2
WHERE
    f.Schauspieler1 = s1.s_id
    AND f.Schauspieler2 = s2.s_id

Auf die gleiche Art kannst du auch gleich noch das Genre anhängen. Join ist zwar schneller, aber ich denke mal nicht das du tausende von Daten verwalten willst.
Setze gute Indexe auf die Tabelle, sowas kann wunder wirken.
 
Zurück