Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Сложный запрос на MySQL
Форумы портала PHP.SU » » Работа с СУБД » Сложный запрос на MySQL

Страниц (1): [1]
 

1. EnerdzaiseR - 09 Октября, 2011 - 04:26:04 - перейти к сообщению
Не удается составить запрос, нуждаюсь в вашей помощи.

Есть такие таблиц:

films:
id | title | description | year | url | time

actors:
id | name_ru | name_en | date | city

careers:
id | title

Есть связывающие таблицы:

films_actors:
id_film | id_actor

actors_careers:
id_actor | id_career

Нужно получить такой вид:

Актер

Карьера: Фильм 1, Фильм 2
Карьера: Фильм 2, Фильм 4

Пример:

Алан Рикман

Актер: Песня ланча / Song of Lunch (2010)
Парфюмер / Perfume (2006)
Режиссер: Зимний гость / Winter Guest (1997)

Приблизитерьно как на ( http://www[dot]kinopoisk[dot]ru/level/4/[dot][dot][dot]ople/202/#writer )


Вот как пробовала:

SELECT
a.name_en,
GROUP_CONCAT(DISTINCT f.title_ru) AS title_ru,
GROUP_CONCAT(DISTINCT f.year) AS year,
GROUP_CONCAT(DISTINCT f.title_en) AS title_en
FROM actors a
LEFT JOIN films_actors fa ON a.id = fa.id_actor
LEFT JOIN films f ON f.id = fa.id_film
GROUP BY a.name_en
LIKE 'actor 2' DESC LIMIT 1

Получилось вот что:

name_en | title_ru | year | title_en
actor 2 | фильм 3,фильм 1| [BLOB - 21B] | film 3,film 1

Во-первых, не знаю как связать с карьерой (career).
Во-вторых, BLOB, я так понимаю это потому что поле int, придется год делать не int?
В-третьих, нужно чтоб фильмы сортировались по году.

Я только учусь, поэтому много не знаю, учусь по ходу создания, направьте на путь истинный пожалуйста, подскажите что делать. Если что-то не понятно написала, напишу подробнее.
Заранее спасибо.

 

Powered by ExBB FM 1.0 RC1