【问题标题】:How to get last related update and second last related update如何获取最后一次相关更新和倒数第二次相关更新
【发布时间】:2014-03-20 13:21:37
【问题描述】:

我有 3 张桌子:opportunitiestr_opportunity_updates
opportunities_tr_opportunity_updates_1_c。后者将opportunitiesopportunity_updates 关联起来。

我想获得 3 列,第一列是机会名称,第二列是对机会进行的最后更新,第三列是对机会进行的最后更新。

我正在尝试获得以下输出:

  -----------------------------------------------
  Opportunity | Last_Update | Second_Last update 
  -----------------------------------------------
  Opp1        | update      | second bla bla     
  -----------------------------------------------
  Opp2        | Lastest up. | second bla bla     

我有一个查询,它获取机会名称和最后一次更新,但我不知道如何获取第二个最后更新并将其添加为另一列。这会是一个子查询吗?如果是的话如何:

  SELECT opportunities.name AS Opportunity, tr_opportunity_updates.description AS Last_Update
  FROM opportunities
  LEFT JOIN opportunities_tr_opportunity_updates_1_c ON opportunities_tr_opportunity_updates_1_c.opportunities_tr_opportunity_updates_1opportunities_ida = opportunities.id
  LEFT JOIN tr_opportunity_updates ON opportunities_tr_opportunity_updates_1_c.opportunities_tr_opportunity_updates_1tr_opportunity_updates_idb = tr_opportunity_updates.id
  WHERE opportunities.deleted = 0
  GROUP BY opportunities.name
  LIMIT 0 , 30

我试图为此实现一个 sql fiddle,但我的表和数据太大了,有许多不敬的字段,但是除了 date_created 之外,与上述查询相关的所有信息都在所有表中,可能需要获取最后第二次更新?

【问题讨论】:

    标签: mysql sql sugarcrm


    【解决方案1】:

    由于没有人试图提供帮助,我将发布我自己的答案:

     SELECT oppa.name AS Opportunity, tr_opportunity_updates.description AS Last_Update,
     (SELECT tou.description FROM opportunities oppb
     LEFT JOIN opportunities_tr_opportunity_updates_1_c ON opportunities_tr_opportunity_updates_1_c.opportunities_tr_opportunity_updates_1opportunities_ida = oppb.id LEFT JOIN tr_opportunity_updates tou ON opportunities_tr_opportunity_updates_1_c.opportunities_tr_opportunity_updates_1tr_opportunity_updates_idb = tou.id
     WHERE oppb.deleted =0 AND tou.deleted =0 AND oppb.id = oppa.id
     ORDER BY tou.date_modified Desc LIMIT 1,1) AS Second_Last_Update
     FROM opportunities oppa
     LEFT JOIN opportunities_tr_opportunity_updates_1_c ON opportunities_tr_opportunity_updates_1_c.opportunities_tr_opportunity_updates_1opportunities_ida = oppa.id
     LEFT JOIN tr_opportunity_updates ON opportunities_tr_opportunity_updates_1_c.opportunities_tr_opportunity_updates_1tr_opportunity_updates_idb = tr_opportunity_updates.id
     WHERE oppa.deleted =0 AND tr_opportunity_updates.deleted =0
      GROUP BY oppa.name
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-18
      • 1970-01-01
      • 2019-08-23
      • 2013-07-30
      • 1970-01-01
      • 1970-01-01
      • 2021-10-22
      • 1970-01-01
      相关资源
      最近更新 更多