получить данные из базы данных фильмов - PullRequest
2 голосов
/ 04 января 2012

Я не эксперт по БД, и это наверняка вопрос новичка.

У меня есть база данных SQLite, содержащая данные о фильмах.

Основная таблица ( фильмы) содержит:

  • movie_id (автоинкремент, основной);
  • title;
  • year;
  • другие поля;

Тогда у меня есть таблица актеров :

  • actor_id (автоинкремент);
  • имя;
  • фамилия;

Тогда у меня есть таблица cast :

  • movie_id (относится к таблице фильмов);
  • actor_id (относится к актерамтаблица, например, Робин Уильямс);
  • имя_символа (имя персонажа, например, "Mrs Doubtfire");

В одном запросе я должен получить все символыданный фильм (на уровне приложения у меня есть идентификатор текущего фильма для запуска), имя и фамилия актера, а также список фильмов (! = этот текущий фильм), где актер играл роль:

Character_name   |   Actor          |   Other movies where we've seen this actor
Mrs Doubtfire    |   Robin Williams |   Mork & Mindy, Dead Poets Society, ...
Other name       |   Other actor    |   Related movies,...

возможно?Как?

1 Ответ

2 голосов
/ 04 января 2012

Попробуйте:

select max(c.character_name) character_name,
       max(a.name) || ' ' || max(a.surname) actor,
       group_concat(distinct m.title) other_movies
from cast c
join actors a on c.actor_id = a.actor_id
left join cast omc on c.actor_id = omc.actor_id and c.movie_id <> omc.movie_id
left join movies m on omc.movie_id = m.movie_id
where c.movie_id = ?
group by a.actor_id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...