在过去的几天里这个问题一直困扰着我。这是我的想法:
一家超大型零售商店公司在许多不同的城市都有门店,每家门店都是在给定的一天开业的。将数据制表的表格将具有(至少)两列,
(1)城市名称(2)开放日期
可取输出:多个列表,每个列表包含给定城市的所有商店,按时间顺序(按开业日期排序),10个城市按字母顺序排序。
为了解决这个问题,我在想:
获取#1:从表中按字母顺序获取10个城市
Fetch #2 (循环中的多个Fetch):迭代每个获取的城市,并获得
所有其各自的商店,使order by date打开。
上面的方法,我已经提出了这项工作,但我想知道是否有一个更简洁的方法来做到这一点,这涉及到循环遍历城市的商店,同时使fetch #1本身,从而不会增加时间复杂性,使用外部循环和执行许多sql执行而不是只执行一次。
这有可能吗?一条sql语句?
发布于 2012-10-21 14:59:51
SELECT * FROM my_table NATURAL JOIN (
SELECT DISTINCT city FROM my_table ORDER BY city LIMIT 10
) t ORDER BY city, opened在应用程序中循环结果集时拆分成单独的列表:只需检查city,看看自上次迭代以来它是否发生了变化。在伪代码中:
for each record in resultset:
if current city is not equal to last city then start new list
output current record
set last city to current cityhttps://stackoverflow.com/questions/12995616
复制相似问题