MySQL запрос, мозг плывет, спасайте

DmitryShustov
На сайте с 27.11.2004
Offline
259
498

Есть запрос 1: SELECT inner_offer_id, shop_id from table1 order by shop_id DESC

Есть следующий за ним запрос 2: SELECT id,inner_id, shop_id, model from table2 where inner_id in (1,2,3,4,54,66)

(1,2,3,4,54,66) - это обработанный результат как раз запроса 1 в части inner_id.

Требуется поменять запрос 2 так, чтобы выборка была не только по вхождению inner_id, но и с учетом shop_id, т.к. inner_id не уникален, а мускул отдает первое попавшееся значение всегда и часть товаров в итоге просто не обходится, если магазинов несколько..

Есть идеи как запрос правильно перефразировать?

O
На сайте с 25.12.2012
Offline
1
#1

Опишите задачу с указанием таблиц, не совсем понятно что Вам надло получить.

По-ходу дела Вы изначально строите набор запросов криво, там всё можно уместить в 1 запрос

Станислав
На сайте с 27.12.2009
Offline
245
#2

SELECT id,inner_id, shop_id, model from table2 where shop_id='запрос' AND inner_id in (1,2,3,4,54,66)

не?

Мы там, где рады нас видеть.
KS
На сайте с 11.06.2012
Offline
17
#3

Osya прав, это делается одним запросом, примерно таким образом:

SELECT t2.id, t2.inner_id, t2.shop_id, t2.model from table2 t2

JOIN table1 t1 ON t2.inner_id=t1.inner_offer_id AND t2.shop_id=t1.shop_id
ORDER BY t1.shop_id DESC
FileSafe (http://filesafe.anek.ws/) - мониторинг неизменности файлов сайта для защиты от взлома. Для форумчан - первый год бесплатно.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий