内部查询很难写

Abh*_*lar -1 mysql sql

我有两张桌子:

customerschema_id

架构表有: schema_id, period, amt, updated_date

我需要加入客户和架构,但只检索加入的最新记录而不是其他记录.

customer table

cust_id  name schema_id
1        ABC  1
Run Code Online (Sandbox Code Playgroud)

架构表

schema_id  period amt updated_date
1          1      100  2010-4-1
1          2      150  2011-4-1
Run Code Online (Sandbox Code Playgroud)

Tar*_*ryn 5

如果你需要max(updated_date)for each 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
Run Code Online (Sandbox Code Playgroud)

请参阅SQL Fiddle with Demo

然后,子查询将用于连接回表,以返回具有匹配日期和schema_id的行.