Скажем, у меня есть "пользователи" таблицы, с "user_id", "name" и "multiplier".
Если я делаю базовый выбор, я получаю одну строку для каждого пользователя:
SELECT * FROM users
Что бы я хотел сделать сейчас, это получить строки mutiplier
для каждого пользователя. Поэтому, если я скажу двум пользователям в моей таблице, что эти значения
(1, 'user1', 1)
(2, 'user2', 6)
Что бы я хотел получить - это выбрать, который вернет мне 7 строк (1 x user1 и 6 x user2)
Я понимаю, что это очень легко сделать на стороне клиента, но это будет частью гораздо большего запроса, и я не могу позволить себе отправлять тысячи строк, затронутых на клиенте, чтобы затем умножать и сортировать и каждый другие вещи, которые я делаю с ним далее...
Спасибо всем, кто может помочь
Я думаю, что вам будет намного лучше опубликовать всю полноту того, что вы пытаетесь решить, потому что, вероятно, есть более чистый способ, чем то, что вы пытаетесь сделать, но приведенный ниже код должен делать то, что вам нужно, Здесь я использую таблицу 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
Не могли бы вы сделать это с помощью временной таблицы? Создайте копию таблицы ваших пользователей с правильным количеством строк на стороне клиента, а затем присоедините свой большой длинный запрос к этой таблице вместо таблицы users.