Я хотел бы сравнить две таблицы, одну с текущим порядком, а другую с историей всех заказов.
Моя цель - определить, существует ли текущий заказ в истории. Для этого мне нужно проверить, есть ли у них одинаковые item
в том же sequence
порядке (не заботясь о точном количестве, только порядок) для любой порядок number
(который группирует заказы в блоки). В этом примере current_order
существует в history_order.order
number 2
:
current_order
+----------+------+
| sequence | item |
+----------+------+
| 1 | 11 |
| 2 | 12 |
| 3 | 13 |
+----------+------+
history_orders
+--------+----------+------+
| number | sequence | item |
+--------+----------+------+
| 1 | 1 | 11 | <- matches item 11
| 1 | 2 | 12 | <- matches item 12
| 1 | 3 | 14 | <- does not match 13, order 1 does not match
+--------+----------+------+
| 2 | 4 | 11 | <- matches item 11
| 2 | 5 | 12 | <- matches item 12
| 2 | 6 | 13 | <- matches item 13, order 2 matches
+--------+----------+------+
Я считаю, что мне нужно создать два подзапроса, чтобы получить упорядоченный items
, а затем сравнить их, но как разобраться с заказом number
? Его нужно сравнивать по блокам. Стоит ли l oop как-то через все number
?
(SELECT item FROM current_order ORDER BY sequence)
INNER JOIN
(SELECT item FROM history_orders ORDER BY sequence GROUP BY number)
...
Заранее спасибо!