Сложный SQL запрос, логикой похожий на DISTINCT

259
11 марта 2017, 02:10

Здравствуйте. Есть три таблицы

release
------------
id |  title 
1     Some
2     Some
3     Some
artist
------------
id | title
1     Artist1
2     Artist2 
release_2_artist
------------
id | release_id | artist_id 
1       1           1
2       2           1
3       3           2 

Нужен запрос результатом которого станет:

  release.id  | release.title
        1           Some       
        3           Some      

Запрос вида SELECT DISTINCT('title'), id FROM release WHERE 1, возвращает только одну запись. В базе на 70к записей потеря контента составляет около 7к.

суть вопроса: Для каждого исполнителя, выбрать альбомы с уникальным title. Реально ли это сделать одним запросом SQL, без костылей на PHP?

Answer 1

Попробуйте

SELECT release.id as release_id, release.title
FROM `release_2_artist`
JOIN `release` ON release.id = release_2_artist.release_id
GROUP BY release_2_artist.artist_id, release.title
Answer 2

Думаю, что такой запрос подойдёт:

SELECT DISTINCT
  r2a.release_id AS release_id,
  r.title AS title
FROM
  release_2_artist r2a
  JOIN release r ON r2a.release_id = r.id;

Столбцы в ответе у меня называются чуть по-другому, чем у Вас в вопросе, но псевдонимы-то Вы любые сочинить можете)

READ ALSO
Не могу установить Gaaps на Genymotion

Не могу установить Gaaps на Genymotion

Не могу установить Gaaps на Genymotion

261
libGDX обработка нажатия на объект

libGDX обработка нажатия на объект

Создаю свою кнопку по принципу прямоугольник,текстура,текст

362
Spring: как правильно написать условие в контроллере?

Spring: как правильно написать условие в контроллере?

Добрый деньЕсть метод в контроллере с условием:

247