oracle,从重复的大表中选择

时间:2013-11-08 08:57:19

标签: sql oracle

我拥有一张包含数百万条记录的表格。每条记录都会将用户的浏览行为保留为一个项目。喜欢

>BrowseRecordTable  
>| ------------------------|   
>userid,itemid,operatetime

当给我一个项目ID(itmeid1)时,现在我想找出谁浏览这个项目也浏览。 这是我做的:
①,从BrowseRecordTable中选择所有记录,其中itemid = itemid1
②,为每条记录,获取userid(temp_userid),
    然后从BrowseRecordTable中选择记录,其中userid = temp_userid     半小时。

当BrowseRecordTable非常大时。有一些麻烦。
如果①中有数千条物品的记录 那么我需要在②中选择BrowseRecordTable数千次

如果有更好的方法来完成我的任务?

1 个答案:

答案 0 :(得分:1)

也许这样的加入?

select * from BrowseRecordTable where userid in (
  select userid from BrowseRecordTable where itemid=itemid1)