检查下面的sql查询。在SearchedUserItems表中,有一个名为SearchedUserID的外键列,它是另一个名为SearchedUsers的表中的主键。因此,基本上在这个查询中,我要说的是,给我表SearchedUserItems中的前100个条目,其中的条目具有匹配的来自内部查询列表select top 10 SearchedUserID from SearchedUsers的SearchedUserID。因此,这给出了所有前10名SearchedUserID中的前100项,但我的目标是:我希望从每个SearchedUserID中获得与SearchedUsers表匹配的前100项。从当前的查询中,我只获得了100个匹配项,但是我需要从每个匹配的SearchedUserID中从SearchedUsers表中获得100个条目。如何在此查询中应用此for each thing?
如果你对问题不清楚,请问我。我尽力解释
select top 100 * from SearchedUserItems where SearchedUserID in (
select top 10 SearchedUserID from SearchedUsers
)发布于 2021-09-14 10:23:50
在我的示例中,您有两个表:A& B。它们连接在表A的id列上,A_id从表B中连接。在您的问题中,您正在为前10条记录中的每一条寻找前100条记录,在我的示例中,我正在为前2条记录寻找前2条记录(我希望您理解这一点.
select *
from ( select A.*
, ROW_NUMBER() OVER(PARTITION BY id ORDER BY id DESC) rn
from A
where ID in (select top 2 A_id
from B
group by A_id
order by A_id asc)) Table_C
where rn <= 2在这里,您可以看到执行中的查询:演示
https://stackoverflow.com/questions/69175071
复制相似问题