首页 > 解决方案 > 需要将 2 个查询合并为 1 个

问题描述

我想将这 2 个查询合并为 1 个。有人可以帮我吗?

查询一:

SELECT
    Date_Consommation AS Date_Consommation, 
    Odometre AS Odometre,   
    IDProduits AS IDProduits,   
    IDZ_Consommations_Provenances AS IDZ_Consommations_Provenances, 
    IDEmployes AS IDEmployes,   
    IDFournisseurs AS IDFournisseurs
FROM 
    Consommations
WHERE IDVehicules = 3140
AND Date_Consommation <= '20191114'
ORDER BY Date_Consommation DESC, Odometre DESC
LIMIT 1

查询 2:

SELECT
    Odometre AS maxOdo
FROM
    Consommations
WHERE IDVehicules = 3140
AND Date_Consommation >= '20191114'
ORDER BY Date_Consommation, Odometre
LIMIT 1

以下是数据示例以及我想要的结果: 单击此处查看图片

The result I want is:
Date_Consommation = 2019-11-12
Odometre = 221698
IDProduits = 342412 
IDZ_Cons... = 16
IDEmployes = 10 
IDFournisseurs = 3
maxOdo = 222354

标签: mysqlsql

解决方案


如果您的数据库允许 CTE,那么这将是一种方法。您需要将 IDvehicules 添加到每个查询的输出中,然后在 IDvehicules 上加入两个查询。此外,由于您将输出限制为一行,因此不需要 order by 子句。


推荐阅读