如何从同一张表中优化几个“WHERE(Select ....)= value”
Posted
技术标签:
【中文标题】如何从同一张表中优化几个“WHERE(Select ....)= value”【英文标题】:how to optimize several "WHERE (Select .... ) = value" from same table 【发布时间】:2011-05-13 09:56:39 【问题描述】:为我编写一个主题名称很难。但我可以举个例子:
WHERE (SELECT [ID_Line] FROM [Event] WHERE [Event].[Name] = [A].[Col]) = 2
AND (SELECT [DataType] FROM [Event] WHERE [Event].[Name] = [A].[Col]) = 2
当我真的需要类似的东西时,我正在处理 2 个查询:
WHERE (SELECT [ID_Line],[DataType] FROM [Event] WHERE [Event].[Name] = [A].[Col]) = 2,2
但是 SQL 不适用于元组,所以我必须在此处进行 Inner Join 吗?
【问题讨论】:
@gbn ms sql 2008 快递 【参考方案1】:你可以试试这样的:
WHERE EXISTS (
SELECT [ID_Line] FROM [Event] WHERE
[Event].[Name] = [A].[Col] AND
[Event].[ID_Line] = 2 AND
[Event].[DataType] = 2
)
如果您提供有关完整查询和数据库结构的更多信息,则可以给出更准确的答案。这可能不是最好的解决方案。
【讨论】:
【参考方案2】:您可以尝试使用熔化运算符来熔化字段。在 ORACLE PL/SQL 中,您使用 || (双管),例如。
【讨论】:
以上是关于如何从同一张表中优化几个“WHERE(Select ....)= value”的主要内容,如果未能解决你的问题,请参考以下文章