Я должен выбрать две таблицы данных, одна из которых PackageData
, а другая PackageDataDetails
. Здесь PackageData является родительской таблицей, а PackageDataDetails является дочерней таблицей.
См. Ниже код:
SELECT
PD.Id, PD.MemberId, PD.Merchant, PD.Weight, PD.Remarks
FROM
[dbo].[PackageData] PD
INNER JOIN
Account A ON A.MemberId = PD.MemberId
INNER JOIN
Users U ON U.Id = A.UserId AND (@UserId IS NULL OR U.Id = @UserId)
WHERE
(@Status IS NULL OR @Status = '' OR PD.SystemStatus = @Status)
AND (@Id IS NULL OR PD.Id = @Id)
ORDER BY
MD.Id
OFFSET @PageSize * (@PageNo+1 - 1) ROWS
FETCH NEXT @PageSize ROWS ONLY
OPTION (RECOMPILE);
SELECT
PDD.Id, PDD.PackageDataId, PDD.Description, PDD.Quantity, PDD.Status
FROM
[dbo].[PackageDataDetails] PDD
INNER JOIN
[dbo].[PackageData] PD ON PD.Id = PDD.PackageDataId
WHERE
PDD.PackageDataId IN ({PD.Id of Above Select query})
Этот блок кода записан в хранимой процедуре. Здесь я не хотел переписывать первый запрос, где условие второго запроса.
Я должен использовать эту хранимую процедуру в одном ответе API, чтобы выполнять действия только в одном вызове БД. Пожалуйста, поделитесь своей идеей, чтобы решить эту проблему.