Запрос:Нужно ли фильтровать внешний запрос в соединении?
SELECT i1.*
FROM (SELECT store_id,
transaction_fid
FROM transactions i
inner join (SELECT prod_id
FROM products
WHERE category = '802') p
ON i.prod_id = p.prod_id
WHERE i.date_id = '10-SEP-16') i1
inner join transactions i2
ON i1.store_id = i2.store_id
AND i1.transaction_fid = i2.transaction_fid
В приведенном выше запросе, я пытаюсь получить сделки, которые имеют элементы, которые принадлежат к category
«802»
Внутренний запрос соответствует каждой строке из transactions
где prod_id
является prod_id
из пункта в category
802.
внешний запрос затем принимает store_id
и transaction_fid
и присоединяется к ним обратно к столу сделки, чтобы получить все другие детали в согласованном сделки.
Мой вопрос: мне нужно отфильтровать внешний запрос в том же диапазоне дат, что и внутренний запрос, или это не имеет значения с точки зрения эффективности/времени выполнения запроса?
Есть ли лучший способ достичь того, что я пытаюсь сделать?
Я считаю, что есть лучший способ сделать это - я думаю, что вы слишком сложны - почему бы просто не объединить транзакции с элементом item_id, а затем ограничить категорию до 802 - если вам нужен только магазин транзакций вы можете использовать различные, чтобы убедиться, что вы не получите все транзакции, хотя - я не могу полностью убедиться, не видя, что ваша таблица настроена - обычно, когда вы создаете такую вещь, у вас есть таблица заказов - и таблица товаров и таблица перекрестного соединения order_items – MageeWorld
Я хочу, чтобы все остальное в транзакции было куплено определенное изделие, поэтому я могу узнать, есть ли какие-либо корреляции между купленным предметом и другими предметами, купленными с ним. , если я только что присоединился транзакции к элементам для категории 802 i будут получать только записи для элементов, которые являются i n категория. Я хочу все, что было куплено с этим предметом. – 5SK5
Есть более простой способ написать ваш подзапрос, даже тогда - снова - без ясности вы DDL, я не могу быть уверен – MageeWorld