代码之家  ›  专栏  ›  技术社区  ›  Lubbock

从SQL中的3个联接表返回1条记录

  •  0
  • Lubbock  · 技术社区  · 6 年前

    我有这个问题

    select DISTINCT outcome.outcome_id as N'id', SName as N'dir', Summry as N'summry', notes as N'note',category as N'cat', outcome_date as N'date' from outcome
    inner join Incomeuser on outcome.outcome_id=Incomeuser.outcome_id
    inner join Senders on Incomeuser.Senders_id=Senders.Senders_id 
    

    它返回3条相同id的记录 好像我有这样的记录:

    • 106
    • 270
    • 260

    106 - 260 - 270 , 有人帮忙吗?!

    1 回复  |  直到 6 年前
        1
  •  0
  •   Gordon Linoff    6 年前

    不要对列别名使用字符串。尤其是不需要的时候。

    outcome_date .

    top (1) row_number()

    select top (1) o.outcome_id as id, SName as dir, Summry as summry, notes as note, category as cat, outcome_date as date
    from outcome o inner join
         Incomeuser iu
         on o.outcome_id = iu.outcome_id inner join
         Senders s
         on iu.Senders_id = s.Senders_id 
    order by row_number() over (partition by o.outcome_id order by outcome_date) ;