Я хочу изменить левое соединение на внутреннее соединение, но для меня это сделать,
Я хочу, чтобы соединение PACKAGEDETAILS.MenuID = MENU.ID
происходило только в случае @packageType = 2
, иначе я хочу, чтобы моя хранимая процедура игнорировала соединение
Я новичок в хранимых процедурах и SQL, я пытался использовать случай, когда, но я потерпел неудачу, я пытался, если тогда, все еще не достиг того, что я хотел.
set @slot = 5;
set @numberofattendees = 100;
set @foodtype = 0;
set @packagetype = 1;
select * FROM PROPERTY
JOIN PACKAGEDETAILS ON PACKAGEDETAILS.ID =
(SELECT
PACKAGEDETAILS.ID
FROM
PACKAGEDETAILS
`````````````````````````````````````````````````````
LEFT JOIN MENU ON PACKAGEDETAILS.MenuID = MENU.ID AND -- i want this join to happen only if the @packageType = 2
MENU.IsActive = 1 AND
MENU.IsDeleted = 0 AND
(MENU.FoodTypeID = 0 OR @FoodType = 0)
`````````````````````````````````````````````````````
JOIN PACKAGEAPPLICABILITY ON PACKAGEDETAILS.ID = PACKAGEAPPLICABILITY.packagedetailsid
WHERE
PACKAGEAPPLICABILITY.IsActive = 1 AND
PACKAGEAPPLICABILITY.IsDeleted = 0
ORDER BY
PACKAGEDETAILS.CostPrice ASC LIMIT 1
)
Поскольку для packageType 1 меню не будет, я хочу, чтобы моя хранимая процедура игнорировала объединение, если @packageType = 1, и работала только при @packageType = 2.