Как найти каждый жанр исполнителя в базе данных musi c в MYSQL? - PullRequest
0 голосов
/ 18 февраля 2020

Итак, у меня есть база данных с 4 таблицами: исполнитель, жанр, трек и альбом. Следите за точками таблицы в виде таблицы «Жанр» и т. Д. С помощью функции «Отслеживать в альбом» и «Альбом для исполнителя».

Предположим, я хочу найти каждый жанр, который играет «Джон Колтрейн», поэтому я подумал о говоря

SELECT DISTINCT Artist.name, Genre.name 
FROM Artist 
JOIN Genre 
JOIN Album 
JOIN Track  
WHERE Artist.name = 'John Coltrane' 
  AND Track.genre_id = Genre.genre_id

Но это только дает мне

enter image description here

т.е. ВСЕ жанры соединены с Джоном Колтрейном, а не просто 'Джаз' что я ищу ...

Почему это не работает?

1 Ответ

0 голосов
/ 18 февраля 2020

Так как вы не показали все столбцы таблицы, которые будут использоваться для объединения таблиц вместе. Я сделаю некоторые предположения для вас. Я буду более точным, если я замечу, что вы обновили topi c, и я обновлю свой ответ, когда увижу его. Если я ошибаюсь в названии столбца, к которому присоединяюсь, просто замените фактический столбец на тот, который я поставил здесь, и он будет делать то, что вы пытаетесь сделать. ; -)

SELECT DISTINCT ART.name,
       Genre.name
  FROM Artist ART
  JOIN Album ALB ON ART.artist_id = ALB.artist_id
  JOIN Track TRK ON ALB.album_id = TRK.album_id
  JOIN Genre G ON TRK.genre_id = G.genre_id
 WHERE ART.name = 'John Coltrane'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...