我有一个时刻,我想做的事情非常简单,我想我只是在寻找错误的解决方案。我想简单地返回一个基于相关表的日期戳排序的表。
即:
Table 1:
200 MyStuff OK
201 Other Why
202 Flat So
Table 2:
1 200 5/12/2009 MyValue1
2 200 5/11/2009 MyValue2
3 201 7/10/2009 MyValue3
4 201 7/08/2009 MyValue4
我想要返回根据第二个表中的日期排序的第一个表,所以我的结果应该是
201 Other Why
200 MyStuff OK
202 Flat So
我尝试过做一个内部联接,但是我选择了不同的东西,我必须包括第二个表中我排序的日期,因此我最终在返回表上有重复的pk。
请帮助我理解我在这里的菜鸟错误。
答案 0 :(得分:0)
由于表1中的每一行都有多行,因此您必须决定如何处理日期以及排序。
假设您要对最大日期戳进行排序,您可以执行以下操作:
select table1.*, t2.max_ds
from table1
inner join (select id, max(datestamp) as max_ds from table2 group by id) t2
on t2.id = table1.id
order by t2.max_ds
你显然必须添加一些空处理和诸如此类的东西,但这应该让你开始。