SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 09.10.2011 02:51:59

pagal
Участник
Зарегистрирован: 21.03.2011
Сообщений: 16

Сложный запрос на MySQL

Не удается составить запрос, нуждаюсь в вашей помощи.

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

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.kinopoisk.ru/level/4/people/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?
В-третьих, нужно чтоб фильмы сортировались по году.

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

Отредактированно pagal (09.10.2011 02:56:29)

Неактивен

 

#2 09.10.2011 14:46:04

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Сложный запрос на MySQL

А где храниться информация о том, что Алан Рикман в фильме "Парфюмер" выступал не режиссером, а именно актером?

Неактивен

 

#3 10.10.2011 01:16:44

pagal
Участник
Зарегистрирован: 21.03.2011
Сообщений: 16

Re: Сложный запрос на MySQL

Вот, этого у меня как раз и не хватает)
Будет правильно, если я сделаю таблицы где хранятся отдельно актеры, режиссеры, сценаристы, и потом свяжу их с фильмами?

Неактивен

 

#4 10.10.2011 01:44:54

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Сложный запрос на MySQL

Достаточно в таблицу actors_careers добавить информацию о фильме:
id_actor | id_career | id_film

Неактивен

 

#5 10.10.2011 22:59:11

pagal
Участник
Зарегистрирован: 21.03.2011
Сообщений: 16

Re: Сложный запрос на MySQL

спасибо большое, щас попробую что выйдет.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson