【发布时间】:2013-09-05 00:43:22
【问题描述】:
这是一个有效的查询:
select
(select 1),
(select 2),
(select 3);
但是,这不是:
select
(select 1),
(select 2, 3);
从数据库逻辑的角度来看,为什么不允许第二次查询?
如果保证查询结果只包含一行,是否对第二个查询进行修复以使其合法并返回与第一个查询相同(或相似)的结果?
澄清一下:
1,2 和 3 是实际查询的占位符,需要几秒钟才能运行。 2 和 3 来自同一个表,如果我将它们分开,查询将花费两倍的时间来运行。如果可能的话,我想避免这种开销。
【问题讨论】:
-
@MostyMostacho 谢谢,123 是非常复杂的实际查询的占位符,我想避免重复查询 N 次的额外开销。
-
如果查询速度很慢,请考虑在此处发布它们以帮助优化它们。我们只能猜测它们的内容可能是什么。
-
@MichaelBerkowski 我很感激。我正在寻找一个通用的解决方案。
-
我同意迈克尔的观点。或者至少发布您期望的输出,以便更好地了解您正在尝试做什么。