首页 > 解决方案 > SQL Server:从一个表中为另一个表中的每条记录选择一个记录列表?

问题描述

我目前有一个用户表和一个 Picks(用于足球池)。获得结果时,我运行查询以选择用户,然后在我的代码中遍历该列表,从另一个表中为每个用户选择多个选择。

Picks 表在不同的行上有每个选择,因此:GameID、UserID、Pick。实际上存在与另一个具有 GameID:Week 关系的表的连接,但我可以将其更改为 IN 查询,现在并不担心。

这有点慢和笨重,所以我想知道是否可以通过一次查询整个数据集来加快速度。我很确定我在很久以前的某个地方做过这个,但我找不到我使用的代码。

伪编码类似于:SELECT UserID, (SELECT Multiple GameID, Pick FROM Picks WHERE UserID = @UserID)。IE 我希望将子查询的多行作为主查询中的列返回。只有为子查询选择一个值,这是否真的可行?

标签: sqlsql-serversubqueryleft-joininner-join

解决方案


你不是在找一个join吗?

select u.*, p.gameid, p.pick 
from users u
left join picks p on p.userid = u.user_id

推荐阅读