Задать вопрос

Как написать запрос mysql на выборку из таблицы строк на сумму не выше указанной?

Здравствуйте, помогите составить MysQL запрос
Есть таблица
id    price(цена)   effect(эффективность)
21	  10	              56
23	  70	              20
24	  20	              45
25	  30	              0
26	  50	              30

CREATE TABLE `table` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `price` int(11) NOT NULL,
  `effect` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `table` (`id`, `price`, `effect`)
VALUES
	(1,10,56),
	(2,50,65),
	(3,35,20),
	(4,70,50),
	(5,10,0);

Нужно выбрать из таблицы строки с максимальной эффективностью на сумму не выше указанной (например, 100).
  • Вопрос задан
  • 2699 просмотров
Подписаться 7 Оценить Комментировать
Ответ пользователя Yurii Medvedev К ответам на вопрос (4)
kin9pin
@kin9pin
SELECT t.*,
       @sum := @sum + effect
FROM (
	SELECT *
	FROM `table`
	ORDER BY effect DESC
      ) AS t
      JOIN (SELECT @sum := 0) var
WHERE @sum < 100;
Ответ написан
Комментировать