私はかなり単純で自明なSQL文を持っています:
ALTER PROCEDURE [dbo].[sp_getAllDebatesForAlias](@SubjectAlias nchar(30))
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
SELECT *
FROM tblDebates
WHERE (SubjectID1 in (SELECT SubjectID FROM tblSubjectAlias WHERE SubjectAlias = @SubjectAlias))
OR (SubjectID2 in (SELECT SubjectID FROM tblSubjectAlias WHERE SubjectAlias = @SubjectAlias)) ;
END
このステートメントをより効率的にする方法があると確信しています。少なくとも、in
セクションで同じテーブルを複数作成することを取り除きます。つまり、
SELECT SubjectID FROM tblSubjectAlias WHERE SubjectAlias = @SubjectAlias
部。
何か案は?