Мне нужно вернуть список возможных комбинаций инвентаря, которые можно запускать на машинах на основе на нем последняя текущая инвентаризация. И мне также нужно вернуть список компьютеров без дубликатов инвентаря.
Чтобы получить список возможных комбинаций инвентаря, которые могут работать на машинах, на основе последнего запущенного инвентаря, я попробовал использовать CROSS JOIN и это работает [Ссылка 1].
Но для списка машин без дубликатов инвентаря я понятия не имею, как это сделать [Ссылка 2]?
Код: Выделить всё
MachineМашина
Инвентарь
Цвет
Размер
A
1111
Красный
Маленький
B
1112
Красный
Маленький
< /tr>
C
1113
Зеленый
Большой
Код: Выделить всё
InventoryИнвентарь
Цвет
Размер
1114
Красный
Маленький
1115
Красный
Маленький
1116
Зеленый td>
Большой
I нужно получить каждую комбинацию(
Код: Выделить всё
Machine CROSS JOIN InventoryКод: Выделить всё
SELECT
m.Machine, i.Inventory, m.Color, m.Size
FROM
Machine m
CROSS JOIN
Inventory i
WHERE
i.Color = m.Color AND i.Size = m.Size
Машина
Инвентарь
Цвет
Размер
A
1114
Красный
Маленький
A
1115
Красный
Маленький
B
1114
Красный
Маленький
B
1115
Красный
Маленький
C
1116
Зеленый
Большой
Мне не нужно иметь дублирующийся инвентарь (1 машина, 1 инвентарь)
Машина
Инвентарь
Цвет
Размер
A
1114
Красный
Маленький
B
1115
Красный
Маленький
C
1116
Зеленый
Большой
Для [2] я пытался сделать в коде цикл машин и найти 1 к 1 на основе цвета и размера в таблице инвентаря и назначить.
Затем исключите тот, который я уже назначено для следующей машины.
Но чтобы перебрать все, потребовалось некоторое время.
Подробнее здесь: https://stackoverflow.com/questions/787 ... -condition
Мобильная версия