Нужно получить список описания фильмов для текущего языка и "сайта"
Есть таблица movie_desc:
id | movie_id | text | site_id | lang
Есть запрос:
SELECT * FROM `movie` where ( site_id = 15 OR site_id = 1 OR site_id IS NULL) AND ( lang = 'ru' OR lang = 'en' OR lang IS NULL)
Запрос возвращает почти все вхождения (оно и понятно, потому что site_id, lang может быть NULL)
Как мне вернуть по 1 строку с наибольшим совпадением по условию на каждый фильм?
Думал использовать GROUP BY по movie_id, но это не агрегированное поле.
P.S. Суть сия извращенства:
Есть фильмы, а есть описания к ним на разных языках, у некоторых фильмов не заполнено описания для какого-то языка, и должна выводиться либо для стандартного языка (lang en) либо общее описание (lang IS NULL)