【发布时间】:2023-03-31 03:08:01
【问题描述】:
我在一个查询中有多个JOIN 语句,我必须检查JOIN 中的两个设置。如何以最好的方式做到这一点?
table: WebSettings
-------------------------------------------------------
Name | Setting | InstID | WebSettingID
-------------------------------------------------------
'EnableError' | 2 | 1111 | 1
'ErrorsSetting' | 0 | 2121 | 2
Index :
InstID
WebSettingID (InstID)
table: InstProd
-------------------------------------------------------
InstitutionID | Name
-------------------------------------------------------
1111 | 'Bank of Ind'
2121 | 'IOB'
Index :
InstitutionID
SELECT
Column1,
DATEADD(.....)
FROM
dbo.InstProd I
INNER JOIN dbo.WebSettings WS1 ON
WS1.InstitutionID = I.InstID AND
WS1.Name = 'EnableError' AND WS1.Setting=2
INNER JOIN dbo.WebSettings WS2 ON
WS2.InstitutionID = I.InstID AND
WS2.Name = 'ErrorsSetting' AND WS2.Setting=0
WHERE.....
我想在JOIN 中检查一个WebSettings = 2 和other = 0
有没有最好的解决方案?
【问题讨论】:
-
请更好地解释您的要求。你想要什么输出?
-
添加表定义和索引!
-
该代码甚至不会运行。您的代码中缺少 AND/OR 子句。
-
@Keppy:解释你的目标。我不知道您的选择 (JOIN) 是否最好。但是你必须发布你的表格结构和你想要的结果
-
@JoeTaras 添加了更多信息。
标签: sql sql-server join query-optimization