Проблема с джойнами
Подскажите, почему одна процедура работает, а вторая нет?
Работает:
ALTER PROCEDURE [dbo].[UpdateCategory]
@ID int,
@Name nvarchar(50),
@Description nvarchar(50),
@Store nvarchar(50)
AS
BEGIN
SET NOCOUNT ON;
UPDATE Categories
SET CategoryName = @Name,
Description = @Description,
StoreID = (SELECT StoreId FROM Stores WHERE StoreName = @Store)
WHERE CategoryID = @ID;
END
Это не работает:
ALTER PROCEDURE [dbo].[UpdateCategory]
@ID int,
@Name nvarchar(50),
@Description nvarchar(50),
@Store nvarchar(50)
AS
BEGIN
SET NOCOUNT ON;
UPDATE Categories
SET CategoryName = @Name,
Description = @Description,
StoreID = Stores.StoreId
FROM Categories
INNER JOIN Stores ON Categories.StoreId = Stores.StoreId
WHERE Categories.CategoryID = @ID
END
Также не работает с лефт джойном.
Источник: Stack Overflow на русском