mysql - sql合并两个查询结果

标签 mysql sql

使用 xampp mysql
q1:

SELECT truckid, count(deliveryid) 
  FROM `delivery` 
 WHERE year(deliverydate)=2019 and month(deliverydate)=1 
 GROUP BY truckid

q2:

 SELECT truckid,count(deliverid) 
   FROM `delivery2` 
  WHERE YEAR(ddate)=2019 and MONTH(ddate)=1 
  GROUP BY truckid

我正在尝试获得一页有 4 列的结果,以便我可以在它们之间进行比较

我上个月已经完成了,我想我使用了左连接,但我现在似乎无法让它工作:(

帮助。

最佳答案

您可以使用union all并进行条件聚合:

select truckid, 
       sum( tbl = 'delivery' ) as delivery_count,
       sum( tbl = 'delivery2' ) as delivery2_count
from (select truckid, deliveryid, 'delivery' as tbl
      from delivery
      where year(deliverydate) = 2019 and month(deliverydate) = 1
      union all
      select truckid, deliverid, 'delivery2'
      from delivery2
      where YEAR(ddate) = 2019 and MONTH(ddate) = 1
     ) t
group by truckid;

关于mysql - sql合并两个查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55225114/

相关文章:

javascript - 从 Access 到 MySQL 的 SQL 查询转换

MYSQL数据库设计: How to store 3 Dimensional data for every user?

sql - 如何从一列中获取不同的数据

mysql - 选择按年和月分组的特殊订单

java - SQLite 如何 - 在 JOIN 中按值求和

php - 什么是适用于 Windows Vista 的强大而简单的 Apache/PHP/MySQL 安装程序

php - 仅选择今天和 future 2 天内的结果

mysql - 查找具有相同关键字的所有产品

sql - 优化 IN 子句

c# - SQL Stored Proc 随着时间的推移消耗内存