两个并行查询-共有月/年(MYSQL)

两个并行查询-共有月/年(MYSQL),mysql,sql,join,group-by,left-join,Mysql,Sql,Join,Group By,Left Join,我试图将两个查询并排放置,它们之间有相同的月份和年份。 他们各自工作得很好 表框-每月查找表框 SELECT count(*) AS Count_Boxes, DATE_FORMAT(create_date, '%b') AS 'Month', DATE_FORMAT(create_date, '%Y') AS 'Year' FROM boxes GROUP BY YEAR(create_date), MONTH(create_date); SELECT count(*) as Count_O

我试图将两个查询并排放置,它们之间有相同的月份和年份。 他们各自工作得很好

表框-每月查找表框

SELECT count(*) AS Count_Boxes,
DATE_FORMAT(create_date, '%b') AS 'Month',
DATE_FORMAT(create_date, '%Y') AS 'Year'
FROM boxes
GROUP BY YEAR(create_date), MONTH(create_date);
SELECT count(*) as Count_Orders,
DATE_FORMAT(create_date, '%b') AS 'Month',
DATE_FORMAT(create_date, '%Y') AS 'Year'
FROM orders
GROUP BY YEAR(create_date), MONTH(create_date);
表订单-每月查找订单

SELECT count(*) AS Count_Boxes,
DATE_FORMAT(create_date, '%b') AS 'Month',
DATE_FORMAT(create_date, '%Y') AS 'Year'
FROM boxes
GROUP BY YEAR(create_date), MONTH(create_date);
SELECT count(*) as Count_Orders,
DATE_FORMAT(create_date, '%b') AS 'Month',
DATE_FORMAT(create_date, '%Y') AS 'Year'
FROM orders
GROUP BY YEAR(create_date), MONTH(create_date);
我尝试了很多使用左连接的方法,但都没有效果

有什么建议吗?

您可以加入:

SELECT o.count_orders, b.*
FROM (
    SELECT count(*) AS Count_Boxes,
    DATE_FORMAT(create_date, '%b') AS mn,
    DATE_FORMAT(create_date, '%Y') AS yr
    FROM boxes
    GROUP BY YEAR(create_date), MONTH(create_date)
) b
INNER JOIN (
    SELECT count(*) as Count_Orders,
    DATE_FORMAT(create_date, '%b') AS mn,
    DATE_FORMAT(create_date, '%Y') AS yr
    FROM orders
    GROUP BY YEAR(create_date), MONTH(create_date)
) o ON o.mn = b.mn and o.yr = o.yr
但是,如果其中任何一个数据集都可能缺少周期,则另一种方法使用
union all

SELECT 
    SUM(no_orders) count_orders,
    SUM(no_boxes) count_boxes,
    DATE_FORMAT(create_date, '%b') mn,
    DATE_FORMAT(create_date, '%Y') yr
FROM (
    SELECT create_date, 0 no_orders, 1 no_boxes FROM boxes
    UNION ALL       
    SELECT create_date, 1, 0 FROM orders
)
GROUP BY YEAR(create_date), MONTH(create_date)
请给出你所需要的&把它和你的问题联系起来。仅将图像用于无法表示为文本或扩充文本的内容。请在代码问题中给出--cut&paste&runnable代码,包括作为代码输入的最小代表性示例;期望和实际输出(包括逐字记录错误消息);标签和版本;清晰的说明和解释。对于包含DBMS和DDL(包括约束和索引)的SQL,请将其输入为格式化为表的代码。