/ / Как да върнем всички записи от всички таблици? - sql, database, join

Как да върнем всички записи от всички маси? - SQL, база данни, присъединете се

за училищна задача трябва да напиша заявка, в която трябва да присъединя всички таблици в база данни. Базата данни изглежда по следния начин:

Screenshot

Така че запитването трябва да се присъедини към всички таблици и да покаже всички записи. Опитвам се да направя това, но през последните няколко дни не успя. Може ли някой да ми помогне?

Това, което се опитах:

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.

Отговори:

0 за отговор № 1

Ако трябва да покажете всички редове на всички таблици с помощта на JOIN, тогава ще ви е нужен a FULL JOIN за показване на записите.

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

Типът JOIN, който пресъздадохте с клаузите WHERE, беше INNER JOIN където се показват само записите, които имат кореспонденти във всички таблици.


0 за отговор № 2

Ако приемем, че Gebruiker е основната маса, можете да използвате следното, за да се присъедините

 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.* може да бъде заменен с SELECT *

Прегледът може да се присъедини към таблицата с Gebruiker:

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

или таблицата за проследяване:

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

По подобен начин таблицата TrackAankoop може да се присъедини към таблицата на Aankoop:

 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

или таблицата за проследяване;

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