我有两张桌子:
table1 table2
---------------------------- --------------------------------
sym i_date value id (PK) sym mapping
---------------------------- --------------------------------
abc 2017-2-23 3.4 1 abc MP1
xyz 2013-1-12 4.5 2 xyz MP3
def 2011-1-1 1.1 3 def MP1
abc 2012-1-23 3.2
对于给定的映射' value我想检索与映射匹配的所有sym,然后检索所有i_date和值,并为每个sym按升序排序所有i_dates。
例如,如果我指定' MP1'我想像这样检索它:
Expected Result
----------------------------
sym i_date value
----------------------------
abc 2012-1-23 3.2
abc 2017-2-23 3.4
def 2011-1-1 1.1
我能够在没有使用以下sql语句对每个sym进行排序的情况下获取数据:
select table1.sym,
table1.i_date,
table1.value
from table1
inner join table2 on table1.sym = table2.sym
where table2.mapping = 'MP1'
请告知我如何获得预期结果(如下所示)。提前谢谢。
答案 0 :(得分:1)
select table1.sym,
table1.i_date,
table1.value
from table1
inner join table2 on table1.sym = table2.sym
where table2.mapping = 'MP1'
order by table1.sym,
table1.i_date
答案 1 :(得分:1)
除非我在这里遗漏了一些内容,否则一个简单的order by
应该这样做:
select table1.sym,
table1.i_date,
table1.value
from table1
inner join table2 on table1.sym = table2.sym
where table2.mapping = 'MP1'
order by table1.sym, table1.i_date
答案 2 :(得分:0)
如果我理解正确你只需要像订购条款一样简单的东西吗?
选择table1.sym, table1.i_date, table1.value 来自table1 table1.sym = table2.sym上的内连接table2 table2.mapping =' MP1' e 按table2.mapping,table1.value
排序您需要使用order by子句。 Ir首先按指定的第一个元素排序,然后按第二个
排序答案 3 :(得分:0)
您可以尝试以下查询。
select table1.sym,
table1.i_date,
table1.value
from table1
inner join table2 on table1.sym = table2.sym
where table2.mapping = 'MP1' order by table1.i_date ,table1.sym