mysql - UNION MySQL 的问题

标签 mysql sql database select union

我有这个问题:

SELECT COUNT(*) AS invoice_count, IFNULL(SUM(qa_invoices.invoice_total), 0)
AS invoice_total, IFNULL(SUM(qa_invoices.invoice_discount) ,0) AS invoice_discount
FROM qa_invoices
WHERE (DATE(qa_invoices.invoice_date) BETWEEN '12/06/25' AND '12/06/25') 
AND qa_invoices.status_code IN (5, 8)

UNION 

SELECT IFNULL(SUM(qa_returns.client_credit), 0) 
FROM qa_returns 
WHERE (DATE(qa_returns.returnlog_date) BETWEEN '12/06/25' AND '12/06/25');

我得到错误:

The used SELECT statements have a different number of columns.

我正在尝试使用 UNION 命令加入这 2 个选择,如果我们查看 returnlog_dateinvoice_date 具有相同的数据条件,如果有任何方法可以执行将两个查询合二为一会更好。

最佳答案

使用子选择:

SELECT
    COUNT(*) AS invoice_count,
    IFNULL(SUM(invoice_total), 0) AS invoice_total,
    IFNULL(SUM(invoice_discount), 0) AS invoice_discount,
    (
        SELECT IFNULL(SUM(qa_returns.client_credit), 0)
        FROM qa_returns
        WHERE qa_returns.returnlog_date >= '2012-06-25'
        AND qa_returns.returnlog_date < '2012-06-26'
    ) AS client_credit
FROM qa_invoices
WHERE invoice_date >= '2012-06-25'
AND invoice_date < '2012-06-26'
AND status_code IN (5, 8)

关于mysql - UNION MySQL 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11215110/

相关文章:

php - 在 mysql 中用 php targeting auto_increment 删除记录?

java - 制作一个 Spring Boot 应用程序来从现有的 Oracle 数据库加载数据?

mysql - 如何从 MySQL 服务器迁移到大数据 Hadoop

database - 如何在Oracle数据库中写两个字母之间的select?

php - 错误 1064 - MySQL

php - Codeigniter 数据库类与准备好的语句

php - MySQL 连接 - 通过另一个 PHP 表排序结果

sql - 如何按公司对结果进行分组?

mysql - SQL:如何用一个id引用多个数据集?

MySQL 哪个更好地加速一个表与数百万行或管理多个表?