Bei Join: Array als Rückgabe?

Dj Mike

Mitglied
Hallo,

ich habe folgendes relationales Schema:
Code:
movies=({id,title,date,fsk,rating,length,size,plot},{{id}->ALL})
cast=({movie,actor},{{movie,actor}->ALL})

wobei cast[movie] eine ID aus der movies-Relation ist.

Wenn ich diese Daten mit mysql abrufe mache ich das wie folgt:
Code:
SELECT * FROM movies, cast WHERE movies.id=cast.movie

Jetzt krieg ich aber pro Schauspieler den kompletten Datensatz von dem Film, in dem er mitspielt als Rückgabe. Ich kriege also jeden Film mehrmals zurückgegeben. Gibt es auch eine Möglichkeit, den Film nur einmal zurückgegeben zu bekommen, mit allen Schauspielern dieses Filmes als Array oder Ähnliches (ich habe z.B. auch schon left join probiert...)?

Vielen Dank!
Micha
 
Als Array nicht gerade. Aber du kannst die Liste mit einem Trennzeichen als String zurückgeben.

Movie1, Movie2, Movie3

SQL:
SELECT 
	cast.id,
	GROUP_CONCAT(DISTINCT movies.title ORDER BY movies.title SEPERATOR ', ')
FROM movies, cast 
WHERE movies.id=cast.movie
GROUP BY cast.id
 
Zuletzt bearbeitet von einem Moderator:
OK, das klappt schonmal. Danke!

Aber: ist das denn auch die sinnvollste Variante, wenn ich hinterher z.B. so eine Tabelle ausgeben möchte?

---------------------------------------------------------
| Film1 | FSK1 | Rating1 | SchauspielerX, SchauspielerY |
---------------------------------------------------------
| Film2 | FSK2 | Rating2 | SchaulspielerX, SchauspielerZ |
---------------------------------------------------------

Es gibt halt auch noch weitere Relationen nach dem Schema von cast, die ich dann auch in diese Tabelle integrieren würde.

Danke und Gruß,
Micha
 
Wennd u es mit php ausgeben willst, solltest du mehrere Queries absetzen und mehrere Schlaufen machen
 
Zurück