我有以下没有错误的查询:
SELECT u.user_name, u.user_lastn, outer_s.movie_id, outer_s.times_rented
FROM users u,
(
SELECT * FROM
(
SELECT user_id, movie_id, count (movie_id) as times_rented
FROM movie_queue
GROUP BY (user_id, movie_id)
ORDER BY user_id, movie_id
) inner_s
WHERE times_rented>1
) outer_s
WHERE u.user_id= outer_s.user_id;
这是它返回的内容:
USER_NAME USER_LASTN MOVIE_ID TIMES_RENTED
------------------------ ------------------------ ---------- ------------
John Smith 1 3
John Smith 6 2
Mary Berman 4 2
Mary Berman 6 4
Elizabeth Johnson 1 2
Peter Quigley 2 2
我仍然需要做的是显示电影的名称,而不是movie_id,但电影的名称位于另一个名为 movies 的表中,类似于以下示例:
MOVIE_ID MOVIE_NAME
---------- ---------------------------------------------
1 E.T. the Extra-Terrestrial
2 Jurassic Park
3 Indiana Jones and the Kingdom of the Crystal
4 War of the Worlds
5 Signs
期望的结果:
我想在最终表中看到以下列:
USER_NAME | USER_LASTN | 电影名称| TIMES_RENTED |
问题:
但是在这么多子查询之后我很困惑,我怎样才能在那里得到电影名称而不是电影ID?
尝试:
我尝试通过将查询更改为
SELECT u.user_name, u.user_lastn, m.movie_name, outer_s.times_rented
FROM users u, movie m (etc.....)
但它返回了 120 行而不是我应该得到的 6 行。
请帮忙!!