Выборка из двух таблиц по минимальному значению

 
0
 
MySQL
ava
olexdj | 10.04.2013, 03:34
Драсьте.
Есть таблицы. 1 - Товары. 2 - Цены на товары от разных поставщиков, 1 товар может быть у разных поставщиков с разной ценой.

Задача выбирать товары определенного бренда из 1-й таблицы и 1 строку c наименьшей ценой из другой таблицы по каждой модели.
Все работало ок, пока не понадобилось брать из 2-й таблицы еще 1 параметр (типа спецпредложение на данный товар, да/нет). Так вот этот параметр уже берется совсем из другой записи, не с той там где меньшая цена указана ((

Например:


Таблица 1. cat
id / model / brand

Таблица 2. price
id / cat_id / price / param


Выбираю так:


select a.id, a.model, a.brand, min(b.price), b.param
from cat a, price b
where a.id = b.cat_id and a.brand='SONY'
group by b.cat_id


Все четко выбирает, и цена минимальная, а параметр param совсем из другой строки, от другого поставщика (((
Как побороть?  smile 
Comments (6)
ava
olexdj | 10.04.2013, 03:16 #
Еще один нашел временный костыль - выбираю "max(b.param)", чтобы просто узнать, есть ли у этой модели спецпредложение, но оно не обязательно соответствует строке с min(b.price)
ava
_zorn_ | 10.04.2013, 06:45 #
select a.id, a.model, a.brand, b.price, b.param 
from cat a, price b
where a.id = b.cat_id and a.brand='SONY'
ORDER BY b.price ASC
group by b.cat_id
ava
Akina | 10.04.2013, 08:16 #
ava
olexdj | 11.04.2013, 00:51 #
_zorn_, че-то выбирает "b.price" больший а не меньший (((   smile 


Akina, блин, эти джойны для меня темный лес, попробую разобраться.. smile 
ava
_zorn_ | 19.04.2013, 07:04 #
Цитата (olexdj @ 11.4.2013,  00:51)
_zorn_, че-то выбирает "b.price" больший а не меньший (((   smile 

Ну значит
ORDER BY b.price DESC

забыл ньюансы.
ava
Akina | 19.04.2013, 08:32 #
_zorn_, да неверен запрос, неверен. И если он даёт ВДРУГ верную выборку - это не навсегда. Завтра на этих же данных он вполне может дать ту же ошибку -
Цитата (olexdj @  10.4.2013,  03:34 findReferencedText)
этот параметр уже берется совсем из другой записи, не с той там где меньшая цена указана 

Причём эти грабли явно описаны в документации. Правда, её никто и никогда не читает...
Please register or login to write.
Firm of day
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Contributors
  Akina   _zorn_   olexdj
advanced
Submit