У меня есть таблица A для сущностей
У меня есть таблица B для предметов
У меня есть таблица C для сущностей и связанные с ними настроенные значения.
I 'Я хочу написать представление, которое будет возвращать мне строки с каждой комбинацией Entity + Item, и использовать данные из таблицы C, если они существуют.
Кроме того, если в TableC есть элементы, которых нет в TableB, я бы также хотел, чтобы они были
Например,
Table A
Entity 1
Entity 2
Table B
Item X
Item Y
Item Z
Table C
Entity 1 Item X True
Entity 1 Item Y False
Entity 2 Item X False
Entity 2 Item J False
Result Table Wanted
Entity 1 Item X True
Entity 1 Item Y False
Entity 1 Item Z Null
Entity 2 Item X False
Entity 2 Item Y Null
Entity 2 Item Z Null
Entity 2 Item J False
По какой-то причине ярисую бланк для этого.Прошло много времени с тех пор, как я работал с SQL, поэтому, возможно, я упускаю что-то очевидное.Может ли кто-нибудь помочь мне определить синтаксис, который мне нужен для написания этого запроса?
Я подошел ближе, используя CROSS JOIN
SELECT *
FROM Entities
CROSS JOIN Items
LEFT OUTER JOIN EntityItems
ON Entities.ID = EntityItems.EntityID
AND Items.ID = EntityItems.ItemID
Это возвращает мне все, кроме строки в таблице C для ItemJ.
Обновление: поцарапайте, это на самом деле возвращает мне слишком много строк.Это то, с чем я сейчас играю.
Я использую MS Sql Server 2017