当我编写SQL查询时,我发现自己经常会认为“没有办法用单个查询来做到这一点”。当发生这种情况时,我经常转向存储过程或使用临时表(多种语言)的多语句表值函数,最后只需将结果合并并返回结果表即可。SQL查询理论问题 - 单一语句与多语句查询
我不知道是否有人知道,只是作为一个理论问题,它是否应该是可以编写一个返回一个结果集为一个单一的查询(而不是多个语句)的任何查询。显然,我忽略了诸如代码可读性和可维护性等相关问题,甚至可能会查询性能/效率。这更多的是关于理论 - 是否可以这样做......并且不用担心,我当然不打算在多语句更适合所有情况下适合我的目的时开始强迫自己写单语句查询,但是这可能会让我思考是否有可行的方法从单个查询中获得结果的两倍或更长一点。
我想几个参数是为了 - 我正在考虑关系数据库(如MS SQL)与表遵循常见的最佳做法(如所有表具有主键等)。
注:(参考材料纤维网或类似的东西),以赢得“接受的答案”这一点,你需要提供明确的证据
...或反例。 – 2010-01-06 19:16:19
在您回答这个问题之前,您需要对“SQL理论”中的含义有更多的具体说明。实践中使用的SQL在DBMS和DBMS版本之间有所不同。您需要标准化一组标准的SQL结构。例如,你允许什么类型的子查询?此外,您可能希望抽象出一些细节,例如最常用的“SQL查询理论”,它使用关系演算或代数作为SQL的抽象,将表格视为行集,而不是有序的行列表。 – reinierpost 2011-04-29 13:38:56