У меня есть две таблицы в базе данных. Таблица продукта, которая содержит информацию о продукте, и другая таблица SiteProduct, которая содержит идентификатор первой таблицы с именем ProductID и дополнительный SiteID, в котором хранится информация о том, какой сайт имеет какие продукты в своем каталоге. Мне нужно создать сетку на веб-сайте, которая будет отображать все продукты, а затем проверять или снимать флажок, если на сайте есть продукт в их каталоге. Мне нужно сделать это в одном запросе. Пожалуйста, смотрите мой запрос ниже, я пытаюсь использовать левое внешнее соединение для соединения таблицы Product и таблицы SiteProduct. Однако, используя этот запрос, возвращаются только те продукты, которые имеют запись в таблице SiteProduct с SiteID 100. Допустим, есть 100 продуктов, а в таблице SiteProduct 50 продуктов для SiteID 100, я получаю только 50 результатов, когда я Мне нужно просмотреть все 100. Мне нужен запрос, чтобы показать все продукты, а затем нулевое значение или что-то, если у SiteID100 нет этой записи в таблице SiteProduct. Опять же, это должно быть сделано в одном запросе, я не хочу делать последующие вызовы SELECT для таблицы SiteProduct для каждого отдельного продукта. В идеале я хотел бы, чтобы это работало как ЛЕВОЕ НАРУЖНОЕ СОЕДИНЕНИЕ, но я открыт для других возможностей.
Пожалуйста, смотрите мой запрос ниже, спасибо.
SELECT this_.ID as ID110_3_,
this_.Name as Name110_3_,
this_.Description as Descript3_110_3_,
this_.RxStatement as RxStatem4_110_3_,
this_.CreatedDate as CreatedD5_110_3_,
this_.Weight as Weight110_3_,
this_.UPC as UPC110_3_,
this_.UOM as UOM110_3_,
this_.LastModified as LastModi9_110_3_,
this_.IsDeleted as IsDeleted110_3_,
this_.DeletedDate as Deleted11_110_3_,
this_.Url as Url110_3_,
this_.CreatedByUserId as Created13_110_3_,
this_.Status as Status110_3_,
this_.CategoryID as CategoryID110_3_,
this_.ManufacturerID as Manufac16_110_3_,
this_.CreatedBySiteID as Created17_110_3_,
this_.DistributorFeedGuid as Distrib18_110_3_,
sp3_.ProductID as ProductID5_,
sp3_.ID as ID5_,
sp3_.ID as ID143_0_,
sp3_.Name as Name143_0_,
sp3_.Description as Descript3_143_0_,
sp3_.HasSpecial as HasSpecial143_0_,
sp3_.IsAdvanced as IsAdvanced143_0_,
sp3_.SpecialDescription as SpecialD6_143_0_,
sp3_.SpecialTitle as SpecialT7_143_0_,
sp3_.ProductNumber as ProductN8_143_0_,
sp3_.Price as Price143_0_,
sp3_.SalePrice as SalePrice143_0_,
sp3_.StoreDescription as StoreDe11_143_0_,
sp3_.Tagline as Tagline143_0_,
sp3_.LastModified as LastMod13_143_0_,
sp3_.CreatedDate as Created14_143_0_,
sp3_.RentalPrice as RentalP15_143_0_,
sp3_.IsRental as IsRental143_0_,
sp3_.IsFeaturedProduct as IsFeatu17_143_0_,
sp3_.ShowPrice as ShowPrice143_0_,
sp3_.RequestType as Request19_143_0_,
sp3_.MetaTitle as MetaTitle143_0_,
sp3_.MetaDesc as MetaDesc143_0_,
sp3_.MetaKeywords as MetaKey22_143_0_,
sp3_.RequireRX as RequireRX143_0_,
sp3_.[Order] as Order24_143_0_,
sp3_.BrightreeItemID as Brightr25_143_0_,
sp3_.LowQuantityThreshold as LowQuan26_143_0_,
sp3_.UOM as UOM143_0_,
sp3_.BTIsRental as BTIsRental143_0_,
sp3_.WeeklyRentalRate as WeeklyR29_143_0_,
sp3_.MonthlyRentalRate as Monthly30_143_0_,
sp3_.SiteID as SiteID143_0_,
sp3_.ProductID as ProductID143_0_,
cat2_.ID as ID25_1_,
cat2_.Name as Name25_1_,
cat2_.ImageID as ImageID25_1_,
manu1_.ID as ID85_2_,
manu1_.Name as Name85_2_
FROM Catalog.[Product] this_
left outer join Catalog.[SiteProduct] sp3_
on this_.ID = sp3_.ProductID
inner join Catalog.Category cat2_
on this_.CategoryID = cat2_.ID
inner join [Manufacturer] manu1_
on this_.ManufacturerID = manu1_.ID
WHERE sp3_.SiteID = 100
ORDER BY this_.Name asc