这个问题自从过去几天以来一直困扰着我。
这就是我的想法:
一家超级大型零售商店公司在许多不同的城市,每个商店都有商店
在某一天开放。
列表数据的表格将包含(至少)两列,
(1)城市名称(2)开放日期
输出需要:多个列表,每个列表
包含订购城市的所有商店
订购的10个城市按时间顺序(按日期开放)
按字母顺序排列。
为了解决这个问题,我想到了:
获取#1:按字母顺序从表格中提取10个城市
获取#2(循环中的多次提取):迭代每个获取的城市,并获得
所有各自的商店,按日期开始订购。
我提出的上述方法完成了这项工作,但是我想知道是否存在
这是一种更简洁的方式,它包括循环通过城市的存储,同时自己获取#1,从而不会通过使用外部循环和执行许多sql执行而不是仅增加一个来增加时间复杂度。 />
这可能吗?一个sql语句?
答案 0 :(得分:0)
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 city