Объединение таблиц с условиемC#

Место общения программистов C#
Ответить
Anonymous
 Объединение таблиц с условием

Сообщение Anonymous »

У меня есть таблицы Machine и Inventory. В таблице Machine у меня есть свойства последнего запущенного инвентаря. В таблице Inventory у меня есть новый идентификатор и свойства инвентаря (еще не запущенные на машине).
Мне нужно вернуть список возможных комбинаций инвентаря, которые можно запускать на машинах на основе на нем последняя текущая инвентаризация. И мне также нужно вернуть список компьютеров без дубликатов инвентаря.
Чтобы получить список возможных комбинаций инвентаря, которые могут работать на машинах, на основе последнего запущенного инвентаря, я попробовал использовать CROSS JOIN и это работает [Ссылка 1].
Но для списка машин без дубликатов инвентаря я понятия не имею, как это сделать [Ссылка 2]? таблица — машина с последним запущенным инвентарем:


Машина
Инвентарь
Цвет
Размер




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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»