Здравствуйте. Есть вот такой mssql запрос: PHP: DECLARE @START DATE = '2016-12-12'; -- Новая дата заездаDECLARE @END DATE = '2016-12-20'; -- Новая дата выездаDECLARE @today DATE = '2016-12-11';UPDATE mainSET numbernomer = NULLWHERE datestart > @today;DECLARE @mainnumber INT;while EXISTS (SELECT * FROM main WHERE numbernomer IS NULL)BEGIN SELECT top(1) @mainnumber = id FROM main WHERE numbernomer IS NULL ORDER BY datestart ASC, datediff(DAY, datestart, dateend) DESC; UPDATE m0 SET numbernomer = m1.nomer FROM main m0 CROSS apply (SELECT top 1 a.nomer FROM allnomer a LEFT JOIN main m ON a.nomer = m.numbernomer AND DATEDIFF(DAY, m.datestart, m0.dateend) * DATEDIFF(DAY, m.dateend, m0.datestart) <= 0 LEFT JOIN (SELECT m2.numbernomer, MAX(m2.dateend) AS dateend FROM main m2 GROUP BY m2.numbernomer) AS m2 ON a.nomer = m2.numbernomer WHERE a.TYPE = 'lux' AND m.numbernomer IS NULL ORDER BY datediff(DAY, m2.dateend, m0.datestart), a.nomer ) AS m1 WHERE m0.id = @mainnumber;END;SELECT a.nomerFROM allnomer aLEFT JOIN main m ON a.nomer = m.numbernomer AND DATEDIFF(DAY, m.datestart, @END) * DATEDIFF(DAY, m.dateend, @START) <= 0WHERE a.TYPE = 'lux' AND m.numbernomer IS NULL; Подскажите пожалуйста, что нужно изменить, чтобы этот запрос работал в mysql? Я, кроме того, что нужно decale на set поменять и тип данных убрать, ничего не знаю. Прошу вашей помощи P.S. Запрос должен будет выполняться в этой таблице: http://sqlfiddle.com/#!9/81225
Ты хочешь скрестить ежа с ужом. Просто так это не получится. Mysql и mssql - это совершенно разные базы данных. Этот код надо переписывать заново на мсскл и тестировать (что важно). Делать это за тебя никто не будет. Я-бы посоветовал тебе обратиться к фрилансеру.
Абсолютно ничего менять не надо. Надо писать запрос заново исходя из задачи. Это не жигули разных моделей с одинаковыми движками где поменял карбюратор и поехал.