/ / Як повернути всі записи з усіх таблиць? - sql, database, join

Як повернути всі записи з усіх таблиць? - sql, database, join

для завдання в школі я повинен написати запит, де потрібно об'єднати всі таблиці в базі даних. База даних виглядає наступним чином:

Скріншот

Таким чином, запит повинен об'єднати всі таблиці і показати всі записи. Я намагаюся це зробити, але протягом останніх кількох днів він не працював. Хто-небудь може мені допомогти?

Те, що я спробував:

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