如何从同一个表中优化几个"WHERE(Select ....)= value"

cnd*_*cnd 3 sql sql-optimization sql-server-2008

为我撰写主题名称很难.但我可以举一个例子:

WHERE   (SELECT [ID_Line] FROM [Event] WHERE [Event].[Name]  = [A].[Col]) = 2
AND     (SELECT [DataType] FROM [Event] WHERE [Event].[Name]  = [A].[Col]) = 2
Run Code Online (Sandbox Code Playgroud)

在这里我正在处理2个查询,当我真的需要这样的东西时:

WHERE   (SELECT [ID_Line],[DataType] FROM [Event] WHERE [Event].[Name]  = [A].[Col]) = 2,2
Run Code Online (Sandbox Code Playgroud)

但SQL不适用于元组,所以我必须在这里进行内部连接吗?

krt*_*tek 7

你可以尝试这样的事情:

WHERE EXISTS (
    SELECT [ID_Line] FROM [Event] WHERE
        [Event].[Name]  = [A].[Col] AND
        [Event].[ID_Line] = 2 AND
        [Event].[DataType] = 2
)
Run Code Online (Sandbox Code Playgroud)

如果您提供有关完整查询和数据库结构的更多信息,则可以给出更精确的答案.这可能不是最好的解决方案.