Verknüpfung aus zwei Tabellen

Stimmt, funktioniert wirklich. Ein dickes Danke! Könntest du mir den

select tabelle1.id, tabelle1.genrename , if (tabelle3.id is null,'--','X') as isset
from tabelle1 left outer join tabelle2 on ( tabelle2.genreid = tabelle1.id and tabelle2.filmid = 1)
left outer join tabelle3 on ( tabelle3.id = tabelle2.filmid )

Befehl etwas erläutern? Blick da nicht so ganz durch! Wußte nicht mal das man IF Anweisungen in SQL benutzen kann
 
Hi cyklop,

den left outer join auf tabelle3 kann man eigentlich auch weglassen.
mann muesste dann nur das if-statement auf tabelle2.filmid umbauen...


Wie funktioniert das Statement:

Da Du alle Genres zum Film haben wolltest bin ich von der Tabelle Genre ausgegangen.
Hier selektiere ich zunächst alle Genres
--> select ... from tabelle1
Dann habe ich per outer join die FilmLink-Tabelle(tabelle2) dazugejoint.

Ein 'left outer join' zwischen zwei Tabellen heisst, dass aus der Haupttabelle sämtliche Rows selektiert werden können,
auch wenn es in der 'left outer gejointen' kein passendes Gegenstück gibt.
Zusätzlich habe ich in der outergejointen Link-Tabelle die Bedingung filmid = ... mitgegeben, so dass hier nur links
zum gewünschten film gefunden werden.

--> das gleiche habe ich noch einmal von der Link auf die Film-Tabelle gemacht, aber das ist wie gesagt wohl sogar des Guten zuviel

Also mit anderen Worten:

Gib mir alle Genres egal, ob es passende Einträge in der Link-Tabelle gibt.
Wenn es einen Kink-Eintrag gibt, dann mach ein 'X', sonst setzte den Wert '--'.


ÜBRIEGENS

Ein group by wie zuvor in anderen Beiträgen geraten kann/darf man nur bei agregat - funktionen einsetzen.
Gemeint war hier wohl ein distinct.

Falls noch Fragen, so helfe ich gerne

Gruß Agnes
 

Neue Beiträge

Zurück