【问题标题】:oracle, select form a large table repeatedoracle,从一个大表中重复选择
【发布时间】:2013-11-08 08:57:19
【问题描述】:

我有一个包含数百万条记录的表格。每条记录都记录了用户对某个项目的浏览行为。喜欢

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

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

当 BrowseRecordTable 非常大时。有点麻烦。
①如果一个itemid有数千条记录
然后我需要在②中从BrowseRecordTable中选择数千次

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

【问题讨论】:

    标签: sql oracle


    【解决方案1】:

    也许是这样的加入?

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

    【讨论】:

      猜你喜欢
      • 2021-04-03
      • 2020-05-28
      • 1970-01-01
      • 2013-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多