mysql - 将两个顺序 SQL 查询合并为单个 SQL 查询以进行 max 和 join
问题描述
我有两个按顺序执行的 SQL 查询。
-
select max(last_updated_date) as recent_date from TRANSACTION where quality='P' and TYPE='Car'
-
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
我想通过单个查询来实现相同的结果。我什么都想不出来。
解决方案
使用可以使用标量子查询
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')
推荐阅读
- typescript - 在工厂类中推断类型
- android - 应用程序主题更改不影响第一个 MainActivity.its reamain darkmode 每次应用程序第一次午餐时。导航其主题更新后
- java - Hibernate 从事务中删除有缺陷的实体
- python - 如何正确实例化这段代码?
- sql - 字符串拆分,排序并与表 SQL 中的另一列进行比较
- r - 决策树的 ConfusionMatrix 错误输出 R
- python - Django 具有不同模板的多个管理站点
- if-statement - golang hugo 中的 if 语句
- java - 在分片 Akka 集群中调度广播消息
- postgresql - 如何在 posgresql 的一个查询中更新两个表