Я пишу веб-сайт с использованием рамки для воспроизведения 2.0. И у меня проблема при анализе результатов. Этот запрос к mysql db получает все ссылки (может быть несколько эпизодов), добавленных в базу данных за эпизод вместе со всей информацией об эпизоде и аниме.Play 2.0 Сложный запрос соединения, как разобрать (Anorm)
def lastReleasedLink(limit:Long=5):List[(((Episode,Anime),Link),Genre)] = {
DB.withConnection { implicit c =>
SQL(
"""
select * from yas_episodes as a
inner join anime as b on a.ep_anime_id=b.id
left outer join yas_links as c on a.ep_id=c.ep_id
LEFT JOIN yas_animes_genres AS d ON a.ep_anime_id = d.ag_anime_id
INNER JOIN yas_genres AS e ON e.g_id = d.ag_genre_id
where c.ep_id IS NOT NULL group by c.ep_id order by c.date desc limit {limit}
""").on('limit ->limit)as(Episode.simple~Anime.simple~Link.simple~Genre.simple map{
case episode~anime~link~genre => episode -> anime -> link -> Genre
} *)
}
}
Возвращаемое значение является типом , но как я могу сформировать вывод в список скажу List[episode,anime,Seq[links]]
или List[episode,anime,Seq[Genres],Seq[links]]
не знают, куда девать жанры.
Вы можете себе представить, что когда у вас есть две ссылки на один эпизод, информация из таблицы anime и yas_episodes будет скопирована для каждой строки. Поэтому мне нужно как-то складывать их вместе (группа) по записи эпизода. Тогда можно будет перечислить список и получить доступ ко всем объектам.
Как вы можете видеть, в запросе есть отношение «много ко многим» аниме с жанрами. Я не знаю, как я могу собрать все вместе в один список, чтобы иметь доступ к нему в поле зрения. Должен ли Жан быть частью модели Аниме?
ой, спасибо, что, безусловно, решать проблему. Мне все еще нужно привыкнуть к Scala =) – Yaroslav