Как сделать запрос к нескольким таблицам одним запросом - PullRequest
0 голосов
/ 01 мая 2011

У меня есть три таблицы: user, friend_recommendation и movie.Я хотел бы получить имя человека, который порекомендовал мне этот фильм, а также информацию о фильме из таблицы фильмов и комментарий в таблице friend_recommendation.Как мне это сделать?

Предположим, что таблица пользователя имеет имя в качестве атрибута, таблица фильма имеет название фильма в качестве атрибута, а friend_recommendation имеет UID (пользователь, который рекомендует), FID (который рекомендуется) и COMMENT (каков комментарий отUID to FID)

Возможно ли сделать это одним запросом?

1 Ответ

2 голосов
/ 01 мая 2011

Итак, три таблицы, по существу, с этими полями (значительно упрощены):

users (userId, name)
movies (movieId, movieInfo)
recommendations (fromUserId, toUserId, movieId, comment)

SELECT fromUser.name, toUser.name, m.movieInfo, r.comment
FROM recommendations r
INNER JOIN movies m ON m.movieId = r.movieId
INNER JOIN users fromUser ON r.fromUserId = fromUser.userId
INNER JOIN users toUser ON r.toUserId = toUser.userId
WHERE r.toUserId = << my user id, or whatever your criteria are >>

Редактировать в ответ на комментарии ниже: Также извлекая имя / сведения о пользователе фильмабыло рекомендовано от до так же просто, как снова присоединиться к таблице пользователей.Вы можете видеть в JOIN s, что мы выбираем из users дважды.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...