/ / Wie alle Datensätze aus allen Tabellen zurückgeben? - SQL, Datenbank, beitreten

Wie alle Datensätze aus allen Tabellen zurückgeben? - SQL, Datenbank, beitreten

Für eine Schulaufgabe muss ich eine Abfrage schreiben, bei der ich alle Tabellen einer Datenbank zusammenfügen muss. Die Datenbank sieht folgendermaßen aus:

Bildschirmfoto

Die Abfrage muss also alle Tabellen verknüpfen und alle Datensätze anzeigen. Ich versuche das, aber in den letzten Tagen hat es nicht funktioniert. Kann mir jemand helfen?

Was ich versucht habe:

SELECT *
FROM gebruiker G,
gebruiker G2 gebruikertype GT,
aankoop A,
trackaankoop TA,
track T,
genre GE
WHERE G.idGebruikertype = GT.idGebruikertype
AND G.idGebruiker = A.idGebruiker
AND A.idAankoop = TA.idAankoop
AND TA.idTrack = T.idTrack
AND T.idGebruiker = G2.idGebruiker
AND T.idGenre = GE.idGenre.

Antworten:

0 für die Antwort № 1

Wenn Sie alle Zeilen aller Tabellen mit JOIN anzeigen müssen, benötigen Sie eine FULL JOIN um die Datensätze anzuzeigen.

SELECT *
FROM gebruiker G
FULL JOIN gebruikertype GT ON G.idGebruikertype = GT.idGebruikertype
FULL JOIN aankoop A ON G.idGebruiker = A.idGebruiker
FULL JOIN trackaankoop TA ON A.idAankoop = TA.idAankoop
FULL JOIN track T ON TA.idTrack = T.idTrack
FULL JOIN gebruiker G2 ON T.idGebruiker = G2.idGebruiker
FULL JOIN genre GE ON T.idGenre = GE.idGenre

Die Art von JOIN, die Sie mit den WHERE-Klauseln erstellt haben, war a INNER JOIN Dabei werden nur die Datensätze angezeigt, die in allen Tabellen Korrespondenten enthalten.


0 für die Antwort № 2

Angenommen, Gebruiker ist die Haupttabelle, an der Sie Folgendes anschließen könnten

 SELECT G.*, R.*, GT.*, T.*, TG.*, A.*, C.*, TA.*
FROM gebruiker AS G
JOIN gebruikertype as GT ON GT.idGebruikerType = G.idGebruikerType
JOIN review AS R ON R.idGebruiker = G.idGebruiker
JOIN track AS T ON T.idGebruiker = G.idGebruiker
JOIN genre as TG ON TG.idGenre = T.idGenre
JOIN aankoop AS A ON A.idGebruiker = G.idGebruiker
JOIN creditaankoop AS C ON C.idAankoop = A.idAankoop
JOIN trackaankoop as TA ON TA.idAankoop = A.idAankoop

SELECT G.*, R.*, GT.*, T.*, TG.*, A.*, C.*, TA.* kann mit ersetzt werden SELECT *

Review kann entweder an der Gebruiker-Tabelle teilnehmen:

 SELECT G.*, R.*
FROM gebruiker AS G
JOIN review AS R ON R.idGebruiker = G.idGebruiker

oder die Spurtabelle:

 SELECT T.*, R.*
FROM track AS T
JOIN review AS R ON R.idTrack = T.idTrack

In ähnlicher Weise kann der TrackAankoop-Tisch mit dem Aankoop-Tisch verbunden werden:

 SELECT G.*, A.*, TA.*
FROM gebruiker AS G
JOIN aankoop AS A ON A.idGebruiker = G.idGebruiker
JOIN trackaankoop AS TA ON TA.idAankoop = A.idAankoop

oder die Spurtabelle;

 SELECT T.*, TA.*
FROM track AS T
JOIN trackaankoop AS TA ON TA.idTrack = T.idTrack