mysql - 在 SQL 中合并两个不同查询的结果集
问题描述
我有 2 个包含饮料数据的表。一张表有关于售出多少饮料的信息,第二张表有新饮料的数据。
我想获取有关日期的数据,希望如下所示。这两个表都有两个共同的“日期”和“饮料”列。
每天都会出售饮料并添加新的饮料。我正在使用交叉连接来组合这两个表中的数据,复杂的部分是如果任何表在特定日期销售或带来的饮料数量为 0,我想显示 0。
任何人都可以提供任何解决方案,以解决如何以下列样式组合数据。任何帮助将不胜感激。
select * from
(
select Date(sellingDate) as 'Date', softDrink as 'Drinks', Count(*) as 'Sold'
from sell where Date(sellingDate)= '1-1-2020'
group by Date(sellingDate), softDrink
) A
cross join
(
select Date(u.createdDate) as 'Date',softDrink as 'Drinks', Count(*) as 'Brought'
from new_drinks as n
inner join category as c on n.erID = c.erID
where Date(c.createdDate)='1-1-2020'
group by Date(c.CreatedDate), n.softDrink
) B
解决方案
@Andrian-无论如何,您的查询都应该给您错误,因为在您的第二个查询中没有别名为“u”的表。此外,我们需要一个联合和聚合函数来获得您想要的输出。
SELECT Date, Drinks, SUM(Sold) AS Sold, SUM(Brought) AS Brought
FROM
(SELECT Date(sellingDate) AS 'Date', softDrink AS 'Drinks', Count(*) AS 'Sold', 0 AS 'Brought'
FROM sell s
WHERE Date(s.sellingDate)= '1-1-2020'
GROUP BY Date(sellingDate), softDrink
UNION
SELECT Date(c.createdDate) AS 'Date',softDrink AS 'Drinks', 0 AS 'Sold' , Count(*) AS 'Brought'
FROM new_drinks AS n
INNER JOIN category AS c on n.erID = c.erID
WHERE Date(c.createdDate)='1-1-2020'
GROUP BY Date(c.CreatedDate), n.softDrink
) A
GROUP BY Date, Drinks
推荐阅读
- ios - 每个请求都有不同的 json 对象
- python - 更改固定关键字的 django haystack 搜索结果准确性
- excel - 公开 Excel InlineShapes 以进行编辑
- python - 获取终端输出颜色/返回文本颜色
- arrays - Labview 阵列索引跟踪
- amazon-redshift - Google Data Studio 中日期维度的 COUNT DISTINCT 聚合不准确
- javascript - 仅在表格数据动画期间隐藏垂直滚动条
- mongodb - mongoose 中的 updateMany() 和 bulkWrite() 有什么区别?
- swift - 有条件的协议符合协议
- reactjs - 响应式图像