什么是执行此查询的最佳方法。我有下表
mytable与列
x y 1 a 2 b 3 c
我想(在伪sql中)
select x as x1 ,x as x2, x as x3 from mytable where ????
什么时候
x1 is x where y=a x2 is x where y=b x3 is x where y=c
所以我想要
1, 2, 3
我当前正在使用cte和,并且数据集非常大,我正在尝试减少查询时间,是否总是需要进行3次表扫描?
您应该使用3个查询。当self加入时,使用正确的索引会快很多。此外,它将更具可读性。
如果您想进行一次查询调用,则可能是这样:)
SELECT (SELECT x FROM table WHERE y=1) AS x1, (SELECT x FROM table WHERE y=2) AS x2, (SELECT x FROM table WHERE y=3) AS x3