【问题标题】:Merge two sequential SQL query into a single SQL query for max and join将两个顺序 SQL 查询合并为单个 SQL 查询以进行 max 和 join
【发布时间】:2021-08-15 10:02:46
【问题描述】:

我有两个按顺序执行的 SQL 查询。

  1. select max(last_updated_date) as recent_date
        from TRANSACTION where quality='P' and TYPE='Car'
    
  2. select * from CAR 
    JOIN
    (
    select TRAN_ID,LAST_UPDATED_DATE from TRANSACTION 
    ) on TRANSACTION.TRAN_ID=CAR.ID and TRANSACTION.LAST_UPDATED_DATE=recent_date
    

我想通过单个查询获得相同的结果。 我什么都想不出来。

【问题讨论】:

    标签: mysql sql join merge max


    【解决方案1】:

    使用可以使用标量子查询

    select * 
    from CAR 
    JOIN
    (
       select TRAN_ID,LAST_UPDATED_DATE 
       from TRANSACTION 
    ) t on t.TRAN_ID=CAR.ID and t.LAST_UPDATED_DATE=(select max(last_updated_date)
                                   from TRANSACTION 
                                   where quality='P' and TYPE='Car')
    

    【讨论】:

    • 感谢@Serg,此查询完美运行。我只是想知道时间复杂度。还有其他更有效的查询吗?
    • 看看执行计划。这应该不是问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-26
    • 2014-06-08
    • 2016-01-23
    • 2016-07-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多