Я написал эту часть SQL для получения фильмов с персонами (role_id = 1 - это режиссер). В то время как фильм имеет одного режиссера - все хорошо, но появляются дополнительные строки с таким же названием фильма, когда есть более чем один режиссер.Согласованный результат с внутренним соединением
SELECT
m.name,
ps.name as director
FROM
movies m
INNER JOIN participants p ON
m.movie_id = p.movie_id
INNER JOIN persones ps ON
ps.person_id = p.person_id AND
p.role_id = 1
ORDER BY m.updated_at DESC
LIMIT 10\G
Например
*************************** 1. row ***************************
name: Film1
director: director1
*************************** 2. row ***************************
name: Film1
director: director2
*************************** 3. row ***************************
name: Film1
director: director3
*************************** 4. row ***************************
name: Film2
director: director4
*************************** 5. row ***************************
name: Film2
director: director5
*************************** 6. row ***************************
name: Film2
director: director6
ОК, я нашел GROUP_CONCAT для конкатенации директоров в одной строке
SELECT
m.name,
GROUP_CONCAT(ps.name SEPARATOR ", ") as director
FROM
movies m
INNER JOIN participants p ON
m.movie_id = p.movie_id
INNER JOIN persones ps ON
ps.person_id = p.person_id AND
p.role_id = 1
ORDER BY m.updated_at DESC
LIMIT 10\G
, но у меня есть неожиданный результат!
*************************** 1. row ***************************
name: Film123
director: director1, someperson1, someperson3, ......, someperson18
Всего одна строка с людьми из другой категории (артисты или частица). Даже строка с фильмом имеет имя не то же самое, что и ORDER BY m.updated_at DESC должен вернуть
Это небольшое дополнение к другому, более сложному запросу. Когда я добавляю это, MYSQL возвращает ошибку: ERROR 1054 (42S22): Неизвестный столбец «m.movie_id» в разделе «on». Полный запрос там: http://pastebin.com/U0WVMfC6 – Neka
@Neka см. Мой обновленный ответ, а также рассмотрите возможность использования [** fiddle **] (http://sqlfiddle.com/) с соответствующим набором данных, чтобы он был диагностировать реальную проблему –
Удивительный! Благодаря!! – Neka