gpt4 book ai didi

mysql - 将 2 个或更多结果合并在一起?

转载 作者:太空宇宙 更新时间:2023-11-03 11:05:17 25 4
gpt4 key购买 nike

请参阅以下 SQL:

SELECT M.username, count(*) as Total, date(status_date) as Date FROM com_result
LEFT JOIN members as M on M.member_id = com_result.member_id
GROUP BY date(status_date), com_result.member_id Order By status_date DESC

这将显示基于 DATEmember_id 的记录总数

示例结果:

+----------+-------+------------+
| username | Total | DATE |
+----------+-------+------------+
| bx7 | 3 | 2012-09-10 |
| bx2 | 25 | 2012-09-04 |
| bx2 | 401 | 2012-09-03 |
| bx1 | 703 | 2012-09-02 |
| bx4 | 1075 | 2012-09-02 |
+----------+-------+------------+

它运行良好,现在我想合并/联合到另一个相同的表结构。 第二条SQL:

SELECT M.username, count(*) as Total, date(status_date) as Date FROM com_result_b
LEFT JOIN members as M on M.member_id = com_result_b.member_id
GROUP BY date(status_date), com_result_b.member_id Order By status_date DESC

假设 com_result 的结果是:

| bx2   |    25 | 2012-09-04 |

com_result_b 的结果将是:

 | bx2   |    50 | 2012-09-04 |

所以当它合并/联合时——我希望结果是这样的:

 | bx2   |    75 | 2012-09-04 |

如您所见,Total 的值从两个表的同一日期开始增加。怎么办?

最佳答案

SELECT
username,
IF(q1.Total IS NULL,0,q1.Total)+IF(q2.Total IS NULL,0,q2.Total) AS Total,
q1.Date
FROM (
SELECT member_id, M.username, count(*) as Total, date(status_date) as Date
FROM com_result
LEFT JOIN members as M on M.member_id = com_result.member_id
GROUP BY date(status_date), com_result.member_id
) AS q1
LEFT JOIN (
SELECT member_id, M.username, count(*) as Total, date(status_date) as Date
FROM com_result_b
LEFT JOIN members as M on M.member_id = com_result_b.member_id
GROUP BY date(status_date), com_result_b.member_id
) AS q2 ON q1.member_id=q2.member_id AND q1.Date=q2.Date
ORDER BY q1.Date DESC

关于mysql - 将 2 个或更多结果合并在一起?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12350438/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com