| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > MySQL > Выборка из двух таблиц по минимальному значению |
| Автор: olexdj 10.4.2013, 02:34 | ||||
| Драсьте. Есть таблицы. 1 - Товары. 2 - Цены на товары от разных поставщиков, 1 товар может быть у разных поставщиков с разной ценой. Задача выбирать товары определенного бренда из 1-й таблицы и 1 строку c наименьшей ценой из другой таблицы по каждой модели. Все работало ок, пока не понадобилось брать из 2-й таблицы еще 1 параметр (типа спецпредложение на данный товар, да/нет). Так вот этот параметр уже берется совсем из другой записи, не с той там где меньшая цена указана (( Например:
Выбираю так:
Все четко выбирает, и цена минимальная, а параметр param совсем из другой строки, от другого поставщика ((( Как побороть? Добавлено @ 02:37 Без "group by b.cat_id" выбирает только 1 модель бренда с наименьшей ценой. Без "group by b.cat_id" и без "min" выбирает все модели из 1й таблицы и все цены от разных поставщиков на каждый товар из 2-й таблицы, а нужно только 1 с наименьшей ценой. Добавлено через 13 минут и 20 секунд Пока нашел временный костыль, отмечаю параметр одинаковым у всех поставщиков на конкректную модель, но это не дело, надо побороть. |
| Автор: olexdj 10.4.2013, 03:16 |
| Еще один нашел временный костыль - выбираю "max(b.param)", чтобы просто узнать, есть ли у этой модели спецпредложение, но оно не обязательно соответствует строке с min(b.price) |
| Автор: _zorn_ 10.4.2013, 06:45 | ||
|
| Автор: Akina 10.4.2013, 08:16 |
| См. http://www.sql.ru/forum/actualthread.aspx?tid=687908. Задача, видимо, Т3. |
| Автор: olexdj 11.4.2013, 00:51 |
| _zorn_, че-то выбирает "b.price" больший а не меньший ((( Akina, блин, эти джойны для меня темный лес, попробую разобраться.. |
| Автор: _zorn_ 19.4.2013, 07:04 | ||||
Ну значит
забыл ньюансы. |