У меня есть следующий запрос с подзапросом:
SELECT
artists.name,
tracks.track_name,
m.member_name
FROM
artists
LEFT JOIN
(SELECT
RAND() AS seed, artist_id, member_name
FROM
artist_members
GROUP BY seed
ORDER BY seed) m ON m.artist_id = artists.id
JOIN
tracks ON tracks.artist_id = artists.id
WHERE
artists.id = '1'
GROUP BY tracks.track_name
ORDER BY RAND()
LIMIT 4
sqlfiddle: http://sqlfiddle.com/#!9/3266ab/13
Это работает, кроме того, что это даст мнеодно и то же имя исполнителя и его информация (из подзапроса) для всех 12 результатов.
Если я удаляю GROUP BY album_tracks.track_code
, это даст мне случайные имена / данные участника артиста, что хорошо, но может иметь дубликат album_tracks.track_code
, которыйЯ не хочу.
Кажется, я не могу найти баланс в том, что я пытался, я хочу получить случайные имена / информацию о членах артиста, но НЕ иметь тот же album_tracks.track_code
.