gpt4 book ai didi

mysql - 在一个查询中计算来自不同表的结果

转载 作者:行者123 更新时间:2023-11-29 06:51:27 25 4
gpt4 key购买 nike

我有订单order_attachmentsorder_preship_checkorder_preship_check_attachmentorder_logorder_log_attachments

这些列中唯一常见的是 order_id。现在在查询中,我只使用以下查询检查类型 1 和类型 2 的 order_attachments

SELECT
COUNT(file_id) AS totalFiles
FROM
orders_files
WHERE
order_id = '88125'
AND attachment_type IN ('1', '2')

因此,如果它返回,我会在该订单中显示一个附件图标。现在我还需要在其中结合装运前附件和日志附件。没有额外的检查,两者的单独查询如下

SELECT
COUNT(file_id) AS totalFiles
FROM
orders_preship_check_attachment
WHERE
order_id = '88125'

SELECT
COUNT(id) AS totalFiles
FROM
orders_log_attachment
WHERE
order_id = '88125'

我需要将这 3 个查询合并到一个查询中。所以如果每个表有 1 条记录,我只需要得到 3 的计数,即使 3 也不重要。意味着如果这些记录中的任何一个有附件,我需要显示图标,TRUE 或 FALSE。我希望它能让它更清楚

最佳答案

试试这个

SELECT SUM(totalFiles) AS totalFiles
FROM (
SELECT COUNT(file_id) AS totalFiles
FROM orders_files
WHERE order_id = '88125' AND
attachment_type IN ('1', '2')
UNION ALL
SELECT COUNT(file_id) AS totalFiles
FROM orders_preship_check_attachment
WHERE order_id = '88125'
UNION ALL
SELECT COUNT(id) AS totalFiles
FROM orders_log_attachment
WHERE order_id = '88125'
) t

SELECT COUNT(file_id) AS totalFiles
FROM (
SELECT file_id
FROM orders_files
WHERE order_id = '88125' AND
attachment_type IN ('1', '2')
UNION ALL
SELECT file_id
FROM orders_preship_check_attachment
WHERE order_id = '88125'
UNION ALL
SELECT id
FROM orders_log_attachment
WHERE order_id = '88125'
) t

关于mysql - 在一个查询中计算来自不同表的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15152791/

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