У меня проблемы с запросом MySQL.У меня есть следующая таблица:
[id]
[from] DATE (Y-m-d)
[days] INT
[...]
и у меня есть две переменные PHP $start
и $end
.Я хочу получить такой результат, например:
$start = 2012-19-03
$end = 2012-24-03
$result = array(
[0] => COUNT of rows WHERE '2012-19-03' BETWEEN from AND from + INTERVAL days DAY
[1] => COUNT of rows WHERE '2012-20-03' BETWEEN from AND from + INTERVAL days DAY
[2] => COUNT of rows WHERE '2012-21-03' BETWEEN from AND from + INTERVAL days DAY
[4] => COUNT of rows WHERE '2012-22-03' BETWEEN from AND from + INTERVAL days DAY
[5] => COUNT of rows WHERE '2012-23-03' BETWEEN from AND from + INTERVAL days DAY
[6] => COUNT of rows WHERE '2012-24-03' BETWEEN from AND from + INTERVAL days DAY
}
До сих пор я делал это в цикле while с запросом на каждый день, но должен быть лучший способ.Моя проблема - GROUP BY
, где дни, которых нет в данных.
Более подробный пример:
Пример данных:
id, from, days
1, 2012-15-03, 2
2, 2012-15-03, 5
3, 2012-13-03, 20
4, 2012-16-03, 1
Желаемый результат:
$start = 2012-11-03
$end = 2012-19-03
$result = array(
[0] => 0 (ROWS IN DB WHERE '2012-11-03' BETWEEN from AND from+days -- no match in data),
[1] => 0 (ROWS IN DB WHERE '2012-12-03' BETWEEN from AND from+days -- no match in data),
[2] => 1 (ROWS IN DB WHERE '2012-13-03' BETWEEN from AND from+days -- id #3 matches),
[3] => 1 (and so on),
[4] => 3,
[5] => 4,
[6] => 3,
[7] => 2
)
вот так ..
часах без поиска пути, надеюсь, вы мне поможете, Привет