假设我有一个'用户'表,'user_id','name'和'multiplier'。
如果我进行基本选择,我会为每个用户获得一行:
SELECT * FROM users
我现在想做的是为每个用户获取mutiplier
行。所以如果我在表格中说两个用户那些值
(1, 'user1', 1)
(2, 'user2', 6)
我想要的是一个选择,它会返回7行(1 x user1和6 x user2)
我意识到这在客户端很容易做到,但这将是一个更大的查询的一部分,我不能发送受影响的客户端上的数千行,然后乘以排序和每个我接下来要做的其他事情......
感谢任何可以提供帮助的人
答案 0 :(得分:1)
我认为你最好发布你想要解决的全部内容,因为有可能比你想要做的更干净,但下面的代码应该做你需要的。我在这里使用Numbers表。您可以将其创建为表变量或永久表或临时表,但这个想法保持不变:
SELECT
U.user_id,
U.name,
U.multiplier
FROM
Users AS U
INNER JOIN Numbers AS N ON
N.number BETWEEN 1 AND U.multiplier
答案 1 :(得分:0)
你能用临时表做吗?在客户端使用正确的行数构建users表的副本,然后将大的长查询加入到该表而不是users表中。