Добрый вечер. Есть 2 таблицы. contests: id, post_id, status и members: id, uid, post_id, won. Помогите правильно составить запрос, чтобы получить такой ответ (в поле members должно быть указано 3 uid, то есть те, которые имею статус won = 1): Сейчас я имею такой ответ (в поле members указаны все uid, а должны быть только те, которые имеют статус won = 1): Мой неправильный запрос: Код (Text): SELECT contests.id, contests.post_id, contests.status, GROUP_CONCAT(DISTINCT members.uid ORDERBY members.uid ASC SEPARATOR ', ')AS members FROM`contests` contests LEFTJOIN`members` members ON contests.post_id=members.post_id GROUPBY contests.post_id; Я пытаюсь сделать выборку по won = 1 и status = 1: Код (Text): SELECT contests.id, contests.post_id, contests.status, GROUP_CONCAT(DISTINCT members.uid ORDERBY members.uid ASC SEPARATOR ', ')AS members FROM`contests` contests WHERE members.won =1AND contests.status =1 LEFTJOIN`members` members ON contests.post_id=members.post_id GROUPBY contests.post_id; Но получается ошибка: Код (Text): Unexpected ordering of clauses.(near "WHERE" at position 168) Дамп базы приложил. Помогите правильно составить запрос. Спасибо. --- Добавлено --- В общем. Я не внимательный. Нужно 3 и 4 строку поменять местами. WHERE пишется после всех JOIN.
Проблема в том, что с использованием GROUP BY и "подставных" имен (... as ...) Вам необходимо пользоваться HAVING, а не WHERE