假设我有一个表“users”,其中包含“user_id”、“name”和“multiplier”。
如果我进行基本选择,我会为每个用户获取一行:
SELECT * FROM users
我现在想做的是为每个用户获取mutiplier
行。因此,如果我说表中的两个用户的这些值
(1, 'user1', 1)
(2, 'user2', 6)
我想要得到的是一个返回 7 行的选择(1 x user1 和 6 x user2)
我意识到这在客户端很容易做到,但这将是一个更大的查询的一部分,我无法承担在客户端上发送受影响的数千行然后进行乘法和排序以及每个接下来我要用它做其他事情...
感谢任何可以提供帮助的人
最佳答案
我认为你最好发布你想要解决的全部问题,因为可能有比你想要做的更干净的方法,但是下面的代码应该可以满足你的需要。我在这里使用数字表。您可以将其创建为表变量、永久表或临时表,但想法保持不变:
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
关于sql - 根据某些列值复制行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1883362/