Итак, я получил SQL-запрос, который намного выше моего уровня знаний, и я не могу понять, как добавить новый столбец в качестве вывода при выполнении запроса.
SELECT ProductId,Name as Provider FROM (
SELECT COALESCE(ByExternalImageId.ProductId,EANProductImage.ProductId) as ProductId, COALESCE(ByExternalImageId.ProductImageProviderId,EANProductImage.ProductImageProviderId) as ProductImageProviderId FROM Product
LEFT JOIN
(
SELECT Product.Id as ProductId,MIN(EANProductImage.ProductImageProviderId) as ProductImageProviderId FROM Product
INNER JOIN ProductImage as EANProductImage ON
EANProductImage.ExternalImageId = Product.EAN
INNER JOIN ProductImageAngle as EANProductImageAngle ON
EANProductImage.AngleId = EANProductImageAngle.Id
WHERE HasImage=1
GROUP BY Product.Id
) as EANProductImage ON
EANProductImage.ProductId = Product.Id
LEFT JOIN (
SELECT top 1 Product.Id as ProductId,MIN(ExternalProductImage.ProductImageProviderId) as ProductImageProviderId FROM Product
INNER JOIN ProductImage as ExternalProductImage ON
ExternalProductImage.ExternalImageId = Product.ExternalImageId
INNER JOIN ProductImageAngle as ExternalProductImageAngle ON
ExternalProductImage.AngleId = ExternalProductImageAngle.Id
WHERE HasImage=1
GROUP BY Product.Id
) as ByExternalImageId ON
ByExternalImageId.ProductId = Product.Id
WHERE COALESCE(ByExternalImageId.ProductImageProviderId,EANProductImage.ProductImageProviderId) IS NOT NULL
) as images INNER JOIN ProductImageProvider ON ProductImageProvider.Id = images.ProductImageProviderId where Name='GS1'
Правильно, поэтому выше приведен запрос, который мне дали. Это выводит следующее:
Что я не мог понять, так это как я могу также выбрать столбец [Name]
из dbo.Product
и присоединиться к немус токовым выходом на ProductId
? Я знаю основной синтаксис, необходимый для этого, но я не знаю, где мне нужно интегрировать его с кодом выше.
Так что мне нужно что-то вроде: SELECT Product.Name FROM Product inner join [the query above]
в конечном итоге вывод выглядит так:
ProductId Provider Name
.... .... ....
Я понимаю, как глупо звучит этот вопрос, но я пробовал множество способов интегрировать эту маленькую вещь в запрос, представленный выше. Моя проблема в том, что я не понимаю код полностью (особенно потому, что он не был написан мной), чтобы фактически применить его на практике.