我有两张桌子:
带有customer
的 schema_id
架构表有:schema_id, period, amt, updated_date
我需要加入客户和架构,但只检索加入的最新记录而不是其他记录。
customer table
cust_id name schema_id
1 ABC 1
架构表
schema_id period amt updated_date
1 1 100 2010-4-1
1 2 150 2011-4-1
答案 0 :(得分:5)
如果每个max(updated_date)
都需要schema_id
,那么您可以使用子查询:
select c.cust_id, c.name, c.schema_id, s.period, s.amt, s.updated_date
from customer c
inner join
(
select s1.schema_id, s1.period, s1.amt, s1.updated_date
from `schemas` s1
inner join
(
select schema_id, max(updated_date) MaxDate
from `schemas`
group by schema_id
) s2
on s1.schema_id = s2.schema_id
and s1.updated_date = s2.maxdate
) s
on c.schema_id = s.schema_id
然后将子查询用于返回表的连接,以返回具有匹配日期和schema_id的行。
答案 1 :(得分:0)
如果我理解你的问题,你需要对" schema"进行最新的注册。
我认为你需要使用max()函数。因此,请尝试以下查询:
select *
from customer c,
schema s
where c.schema_id = s.schema_id
and s.updated_date = ( select max(s2.updated_date)
from schema s2
where s2.schema_id = s.schema_id
)
问候!
Edmilton