У меня есть таблица merchandises
и merchandise_groups_merchandise
. Последняя таблица представляет собой среднюю таблицу для хранения того, какой товар выбран внутри групп товаров - от многих до многих. Существует отношение от merchandises.id
до merchandise_groups_merchandise.merchandise_id
.Как выбрать все строки из одной таблицы, вычисляя значение поля на основе другой таблицы
Я пытаюсь собрать запрос для получения следующих результатов, в котором перечислены все товары из merchandises
таблицы и где is_selected
является булевой решает, является ли merchandise_id в merchandise_groups_merchandise
таблице для конкретного merchandise_group. И, merchandise_groups_merchandise.group_id
указан пользователем.
Я пробовал соединение LEFT между двумя таблицами, но, конечно, это возвращает только фактический товар, находящийся в средней таблице группы.
Как я могу это сделать?
-------------------------------
|id |title |is_selected
---------------------------
|1 |Tree |1
|2 |Log |0
|3 |Toy |1
Это SQL запроса, что я пробовал:
PARAMETERS group_id Short;
SELECT IIf(IsNull([merchandise_groups_merchandise].[merchandise_id]),False,True) AS selected, merchandises.id, merchandises.title
FROM merchandises LEFT JOIN merchandise_groups_merchandise ON merchandises.id = merchandise_groups_merchandise.merchandise_id
WHERE (((merchandise_groups_merchandise.merchandise_group_id)=[group_id]));
Можете ли вы предоставить образец данных и желанной Результаты? Твое объяснение немного сложно. –