Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / И снова join / 3 сообщений из 3, страница 1 из 1
09.01.2015, 05:57:18
    #38850584
greenif
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
И снова join
Помогите, пожалуйста понять правильным ли путем я пошел.

Есть 2 таблицы products и prices(id, product_id, price_type, value). Суть в том, что категорий цен много, то есть один товар может иметь продажную, закупочную и т.д. категории цен для этого и служить колонка price_type.
Цель отсортировать products по цене конкретной категории, но так что бы выборку попадали товары даже если у них нет цены заданной категории. Насколько я понимаю это классический LEFT OUTER JOIN.
Код: sql
1.
SELECT * FROM products LEFT OUTER JOIN prices ON products.id=prices.product_id WHERE prices.price_type='purchase' OR prices.price_type IS NULL ORDER BY prices.value ASC;



Но так я отбираю только те товары для которых задана purchase цена.

Добился желаемого результата с помощью вложенного запроса:
Код: sql
1.
SELECT * FROM products LEFT JOIN (SELECT * FROM prices WHERE prices.price_type='purchase') AS prices_tab ON products.id=prices_tab.product_id ORDER BY prices_tab.value;



Но насколько я понимаю в данному случае можно обойтись только JOIN без встроенного SELECT, только не пойму как.

Подскажите пожалуйста.
...
Рейтинг: 0 / 0
09.01.2015, 11:03:01
    #38850624
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
И снова join
greenif,

Код: sql
1.
2.
3.
4.
SELECT * 
FROM products 
LEFT OUTER JOIN prices ON products.id=prices.product_id and prices.price_type='purchase' 
ORDER BY prices.value ASC;
...
Рейтинг: 0 / 0
09.01.2015, 14:58:45
    #38850822
greenif
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
И снова join
MasterZiv,

Спасибо тебе добрый человек!
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / И снова join / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]