php - MySQL 跨表查询连接

标签 php mysql

我想创建一个由两个输入表组合而成的输出表,如下所示。表1和表2是MySQL表。输出是所需的表格 View 。

enter image description here

请帮助我对表 1 和表 2 (mysql) 的输出进行计费

最佳答案

您可以将条件聚合UNION ALL结合使用来实现此目的:

SELECT t1.acc_no, t1.name,
       SUM(CASE WHEN t2.`date` = '2016-06-01' THEN amount END) AS '2016-06-01',
       SUM(CASE WHEN t2.`date` = '2016-06-02' THEN amount END) AS '2016-06-02',
       SUM(CASE WHEN t2.`date` = '2016-06-03' THEN amount END) AS '2016-06-03',
       SUM(amount) AS 'Total'
FROM table1 AS t1
LEFT JOIN table2 AS t2 ON t1.acc_no = t2.acc_no

UNION ALL

SELECT 'Total', null,
       SUM(CASE WHEN t2.`date` = '2016-06-01' THEN amount END) AS '2016-06-01',
       SUM(CASE WHEN t2.`date` = '2016-06-02' THEN amount END) AS '2016-06-02',
       SUM(CASE WHEN t2.`date` = '2016-06-03' THEN amount END) AS '2016-06-03',
       SUM(amount) AS 'Total'  
FROM table2

关于php - MySQL 跨表查询连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37719656/

相关文章:

php - pecl_http 加载失败

PHP Soap 必懂

php - 在 Laravel 8 中创建带有门面的自定义包

mysql - 嵌套查询中的更新语句

php - 单击php中的特定行后如何获取特定行值表元素

php - div 使它下面的 div 消失

php - 在 PHP 中返回 JSON 消息

mysql - 在 mysql 中插入...选择

mysql - 为什么我的第 N 个最高薪水 SQL 查询语法错误?

mysql 查询 - 为一个巨大的表优化现有的 MAX-MIN 查询