Предположим, у меня есть таблица contract_items
.Моя таблица contract_items
содержит поля item_id
и contract_id
.
. Мне нужно создать запрос, который получает все элементы таблицы с таким же contract_id
, как у данного элемента, возвращая их item_id
s вместе в group_concat
.В запросе будет что-то вроде предложения where in
, но в обратном порядке, поскольку мне нужна вся группа на основе одного идентификатора.
Что-то вроде:
...
where item_id in item_ids
Как бы ясделай это?Единственное, о чем я могу думать, это подзапросы, но они могут плохо масштабироваться.
То, что я уже достиг:
select group_concat(i.item_id SEPARATOR ', ')
from contract_items i
where i.contract_id = (
select contract_id
from contract_items
where item_id = itemnum
)
Как мне сделать этот запрос лучше (при условии * 1021)* данный предмет)?