Как выбрать определенный столбец c предыдущей датой и добавить его в результирующий набор (mysql)?

Здравствуйте. Есть таблица.
CREATE TABLE `op` (
	`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
	`cid` INT(10) UNSIGNED NOT NULL,
	`date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
	`remain` INT(10) UNSIGNED NOT NULL
	PRIMARY KEY (`id`)
)

Как выбрать из этой таблицы все данные + поле remain предыдущей по дате записи ?
Что бы из записей
"id"    "cid"       "date"             "remain"
"543"	"1233"	"2013-09-24 14:40:19"	"11"
"544"	"6745"	"2013-09-24 16:48:09"	"33"

получить
"id"    "cid"       "date"             "remain"  "prev"
"543"	"1233"	"2013-09-24 14:40:19"	"11"      "0"
"544"	"6745"	"2013-09-24 16:48:09"	"33"      "11"

Спросите почему бы не посчитать это на стороне скрипта? Это не весь запрос, в итоге будут объединены два результирующих набора данных из разных таблиц в один. По этому в скрипте будет тяжело находить нужные значения.
  • Вопрос задан
  • 2458 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Как-то так
SET @prev = 0;
SELECT *, @prev AS prev, @prev := `remain` FROM (SELECT * FROM `op` ORDER BY `date`);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы