Задавайте вопросы, мы ответим
Вы не зашли.
Есть таблица продуктов:
CREATE TABLE `t_product` (
`p_id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`cat_id` int(6) NOT NULL DEFAULT '0',
`b_id` int(6) NOT NULL DEFAULT '1',
`name` varchar(255) DEFAULT NULL,
PRIMARY KEY (`p_id`)
);
INSERT INTO t_product(p_id, cat_id, b_id, name) VALUES(1, 0, 0, 'Продукт1'),(2, 0, 0, 'Продукт2'),(3, 0, 0, 'Продукт3');
Есть таблица цен для продуктов:
CREATE TABLE `t_price` (
`p_id` int(11) NOT NULL DEFAULT '0',
`price` float(8,2) default NULL,
`date_end` datetime default NULL,
`sklad` int(6) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
);
INSERT INTO t_price(id, price, date_end, sklad) VALUES(1, 100, '2011-09-09 00:00:00', 1),(1, 150, '2011-09-10 00:00:00', 2),(1, 50, '2011-09-10 00:00:00', 1),(2, 130, '2011-09-10 00:00:00', 2),(1, 150, '2011-09-10 00:00:00', 2),(3, 200, '2011-09-10 00:00:00', 2);
Мне надо сделать такую выборку в которой я получу список продуктов с двумя условиями: минимальный 'sklad' и 'price' при условии что время прайса не вышло. Есть еще таблица с названиями склада
CREATE TABLE IF NOT EXISTS `t_product_sklad` (
`sklad_id` int(11) NOT NULL auto_increment,
`name` varchar(255) default NULL,
`sortby` int(11) default '0',
`weight` int(11) NOT NULL default '0',
`show_status` enum('1','0') NOT NULL default '0',
`def` enum('1','0') character set cp1251 collate cp1251_bin NOT NULL default '0',
PRIMARY KEY (`sklad_id`)
);
--
-- Дамп данных таблицы `t_product_sklad`
--
INSERT INTO `t_product_sklad` (`sklad_id`, `name`, `sortby`, `weight`, `show_status`, `def`) VALUES
(1, 'Есть в наличии', 1, 1, '1', '0'),
(2, 'Наличие уточняйте', 3, 10, '1', '1'),
(3, 'Осталось мало', 2, 1, '1', '0'),
(4, 'Нет в наличии', 4, 100, '0', '0');
Другими словами для одного продукта запрос выглядит так:
SELECT ip.price_out as price, ip.sklad_id, ps.name as skladname
FROM t_imp_product as ip
INNER JOIN t_product_sklad as ps ON ps.sklad_id=ip.sklad_id
WHERE ip.p_id = '$p_id'
AND date_end > CURRENT_TIMESTAMP
AND ip.price_out > 0
ORDER BY ps.sortby, ip.price_out
LIMIT 1;
Как получить это для выборки?
Неактивен
Условие не совсем понятно:
получу список продуктов с двумя условиями: минимальный 'sklad' и 'price'
Необходимо найти мин. общую сумму 'sklad' и 'price' по продукту?
Неактивен
Приведите пример что в таблицах, и что хотите получить
Неактивен