xzmyxz
@xzmyxz

Как сделать выборку из нескольких таблиц в одном селекте?

Ребята, будьте добры, направьте на мысль!
Нужно вывести имена артистов и жанры в которых они играют, но при условии, что эти артисты исполняют свои произведения больше чем в одном жанре. Каким образом мне произвести проверку на условие?

Таблицы:
CREATE TABLE "artist" (
    "id" INTEGER PRIMARY KEY AUTOINCREMENT,
    "name" TEXT
);
CREATE TABLE "style" (
    "id" INTEGER PRIMARY KEY AUTOINCREMENT,
    "name" TEXT
);
CREATE TABLE "artist_style" (
    "id" INTEGER PRIMARY KEY AUTOINCREMENT,
    "artist_id" INTEGER,
    "style_id" INTEGER,
    FOREIGN KEY ("artist_id") references artist("id"),
    FOREIGN KEY ("style_id") references style("id")
);
  • Вопрос задан
  • 99 просмотров
Решения вопроса 1
qonand
@qonand
Software Engineer
если правильно понял задачу, то так:
SELECT artist.id, artist.name, GROUP_CONCAT(style.name), count(artist_style.style_id) as cnt_style
FROM artist
LEFT JOIN artist_style ON artist_style.artist_id = artist.id
LEFT JOIN style ON artist_style.style_id = style.id
GROUP BY artist.id
HAVING cnt_style > 1
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы