MYSQL LEFT JOIN Несколько столов дважды - PullRequest
0 голосов
/ 14 августа 2011

У меня следующий код MySQL:

SELECT * 
FROM b_movies, b_mov_rol_celeb, b_starcast 
LEFT JOIN bb_celebs ON b_mov_rol_celeb.celeb_id = bb_celebs.celeb_id 
  OR b_starcast.celeb_id = bb_celebs.celeb_id 
LEFT JOIN bb_roles ON b_mov_rol_celeb.role_id = bb_roles.role_id 
WHERE b_movies.id = '14';

Ошибка его выдачи:

Неизвестный столбец 'b_mov_rol_celeb.celeb_id' in 'в предложении'

1 Ответ

1 голос
/ 14 августа 2011

Попробуйте это:

SELECT m.title_slug, m.title, m.release_date,
       c.celeb_slug, c.celeb_name, 
       r.role_name,
       s.char_name
FROM b_movies m
INNER JOIN b_starcast s ON m.id = s.movie_id
INNER JOIN b_mov_rol_celeb mrc ON m.id = mrc.movie_id
LEFT JOIN bb_celebs c ON mrc.celeb_id = c.celeb_id OR s.celeb_id = c.celeb_id 
LEFT JOIN bb_roles r ON mrc.role_id = r.role_id 
WHERE m.id = '14';

Порядок таблиц имеет значение в левом или правом соединении.

...