MySQL Query с использованием данных из двух таблиц - PullRequest
0 голосов
/ 03 июня 2018

У меня есть две таблицы примерно так:

Table 1: tracks
id  | artist     | track
---------------------------------------
1     Tom Smith    This Time is Right Time
2     Tom Smith    Oh Yes
3     John Doe     Every Time I See You

Table 2: festival_bands
id  | fest_title | fest_artist
---------------------------------------
1     Hoe Down Fest 2019    John Doe
2     Copperland Fest       Tom Smith
3     Copperland Fest       Reggie Wisk
4     Copperland Fest       Tom Smith
5     Copperland Fest       John Doe
6     Bluegrass Memories    John Doe

Мне нужно показывать только ОДИН "трек" из таблицы 1 для каждого списка фестивалей из таблицы 2 примерно так: Результаты:

Copperland Festival:
-----------------------
Tom Smith    This Time is Right Time
John Doe     Every Time I See You

В терминах непрофессионала логика была бы такой: получить только одну дорожку из ТАБЛИЦЫ 1, где исполнитель равен (или соответствует) fest_artist из ТАБЛИЦЫ 2

Я ссылался на аналогичный вопрос, который советовал что-то в направлениииз: $sql="select * from tracks WHERE (artist) in (select fest_artist from festival_bands group by name)" но без удачи.

1 Ответ

0 голосов
/ 03 июня 2018

Вы можете использовать коррелированный подзапрос, чтобы получить произвольный трек для исполнителя:

select fb.*,
       (select t.track
        from tracks t
        where t.artist = fb.fest_artist
        order by t.counter desc
       ) as most_popular_track
from festival_bands fb;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...