Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
вложенный запрос в order by (mosquito) 15/09/2009 - 22:22:23
      Re: вложенный запрос в order by (bac) 16/09/2009 - 08:40:30
      Re: вложенный запрос в order by (mosquito) 20/09/2009 - 11:52:22



From: mosquito - 15/09/2009 - 22:22:23
Subject:вложенный запрос в order by
-----------------
здраствуйте.

есть список товаров
нужно отсортировать его, если цена товара 0 то сортируем по минимальной цене атрибута товара если цена товара больше 0 то по цене товара

таблица товаров:
CREATE TABLE products (
products_id int NOT NULL auto_increment,
products_ean varchar(255),
products_quantity int(4) NOT NULL,
products_shippingtime int(4) NOT NULL,
products_model varchar(255),
group_permission_0 tinyint(1) NOT NULL,
group_permission_1 tinyint(1) NOT NULL,
group_permission_2 tinyint(1) NOT NULL,
group_permission_3 tinyint(1) NOT NULL,
products_sort int(4) NOT NULL DEFAULT '0',
products_image varchar(255),
products_price decimal(15,4) NOT NULL,
products_discount_allowed decimal(15,4) DEFAULT '0' NOT NULL,
products_date_added datetime NOT NULL,
products_last_modified datetime,
products_date_available datetime,
products_weight decimal(5,2) NOT NULL,
products_status tinyint(1) NOT NULL,
products_tax_class_id int NOT NULL,
product_template varchar (64),
options_template varchar (64),
manufacturers_id int NULL,
products_ordered int NOT NULL default '0',
products_fsk18 int(1) NOT NULL DEFAULT '0',
products_vpe int(11) NOT NULL,
products_vpe_status int(1) NOT NULL DEFAULT '0',
products_vpe_value decimal(15,4) NOT NULL,
products_startpage int(1) NOT NULL DEFAULT '0',
products_startpage_sort int(4) NOT NULL DEFAULT '0',
products_to_xml tinyint(1) NOT NULL DEFAULT '1',
yml_bid tinyint(1) NOT NULL DEFAULT '0',
yml_cbid tinyint(1) NOT NULL DEFAULT '0',
products_page_url varchar(255),
PRIMARY KEY (products_id),
KEY idx_products_date_added (products_date_added)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE utf8_general_ci;

атрибуты товаров:
CREATE TABLE products_attributes (
products_attributes_id int NOT NULL auto_increment,
products_id int NOT NULL,
options_id int NOT NULL,
options_values_id int NOT NULL,
options_values_price decimal(15,4) NOT NULL,
price_prefix char(1) NOT NULL,
attributes_model varchar(255) NULL,
attributes_stock int(4) NULL,
options_values_weight decimal(15,4) NOT NULL,
weight_prefix char(1) NOT NULL,
sortorder int(11) NULL,
PRIMARY KEY (products_attributes_id),
KEY PRODUCTS_ID_INDEX (products_id)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE utf8_general_ci;

нужно получить запрос который выбирает товары из бд и сортирует по products_price или по MIN(options_value_price)

должно получится чтото похожее на:
select * from products_description pd, products_to_categories p2c, products p
left join manufacturers m on p.manufacturers_id = m.manufacturers_id
left join specials s on p.products_id = s.products_id
where p.products_status = '1' and p.products_id = p2c.products_id
and pd.products_id = p2c.products_id and pd.language_id = '1' and p2c.categories_id = '2'

ORDER BY
(select MIN(pa.options_values_price) as price from products_attributes as pa where (pa.options_values_price <> 0) and (pa.products_id = p.products_id)) desc

собственно как изменить часть order by чтобы если prod_price = 0 было так как есть а если products_price >0 то было order by p.products_price?


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
36206



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |