можно ли этот запрос написать иначе

fixxxer

К.О.
Партнер клуба
Ну, в mysql это пока что только в еще не вышедшей 8-ке, а в postgresql уже довольно давно есть. С рекурсией забавные штуки можно делать (хотя на самом деле это обычная итерация), в постгресовском мане есть весьма интересные примеры.
 

WMix

герр M:)ller
Партнер клуба
Ну, в mysql это пока что только в еще не вышедшей 8-ке
это да, но это стандарт sql99,
для игр хватит
Код:
docker run --name mysql8 -d mysql/mysql-server:8.0
С рекурсией забавные штуки можно делать
пока хочется с датами поиграться, для статистики лучшего инструмента не придумаешь
Код:
WITH RECURSIVE calendar (n) AS           
    -> (
    ->   SELECT DATE(now())
    ->   UNION ALL
    ->   SELECT ADDDATE(n, INTERVAL 1 DAY) FROM calendar WHERE n < '2018-30-03'
    -> )
    ->
    -> SELECT * FROM calendar;
+------------+
| n          |
+------------+
| 2018-03-09 |
| 2018-03-10 |
| 2018-03-11 |
| 2018-03-12 |
...
 

fixxxer

К.О.
Партнер клуба
А, ну как замена generate_series() тоже сгодится, да.
Я в mysql для такого извращался с генерацией из php-кода подзапроса вида select 1 union all select 2 ... :)
 
Последнее редактирование:

WMix

герр M:)ller
Партнер клуба
Я в mysql для такого извращался с генерацией из php-кода подзапроса вида select 1 union all select 2
а просто табличку сгенерить типа
Код:
set @N = 0;
create table numbers
SELECT @N := @N +1 AS number FROM big_table limit xxx;
а после к ней join'ить ?
 

fixxxer

К.О.
Партнер клуба
Я не совсем точно задачу рассказал, create table сделает автокоммит, а там это было крайне нежелательно.
 
Сверху