我有一个计数标题(voucher_credits.voucher_id),我已经使用 WHERE 语句将其添加到我的报告中,但我想使用不同的条件将其再次添加为另一列,如何才能我这样做?
SELECT vouchers.code, vouchers.credit, count(voucher_credits.voucher_id) as Activated
FROM vouchers, voucher_credits, users
WHERE vouchers.id = voucher_credits.voucher_id
AND voucher_credits.remaining_credit = 0
AND users.id = voucher_credits.user_id AND users.state = 'active'
AND vouchers.is_customer_service = FALSE
GROUP by vouchers.code, vouchers.credit
ORDER by count(voucher_credits.voucher_id) DESC
LIMIT 100
第二列是 users.state = 'cancelled' 而没有 .remaining_credit = 0
最佳答案
尝试 UNION ALL:
SELECT vouchers.code, vouchers.credit, count(voucher_credits.voucher_id) as Activated
FROM vouchers, voucher_credits, users
WHERE vouchers.id = voucher_credits.voucher_id
AND voucher_credits.remaining_credit = 0
AND users.id = voucher_credits.user_id AND users.state = 'active'
AND vouchers.is_customer_service = FALSE
GROUP by vouchers.code, vouchers.credit
ORDER by count(voucher_credits.voucher_id) DESC
UNION ALL
SELECT vouchers.code, vouchers.credit, count(voucher_credits.voucher_id) as Activated
FROM vouchers, voucher_credits, users
WHERE vouchers.id = voucher_credits.voucher_id
AND users.state = 'cancelled'
AND users.id = voucher_credits.user_id AND users.state = 'active'
AND vouchers.is_customer_service = FALSE
GROUP by vouchers.code, vouchers.credit
ORDER by count(voucher_credits.voucher_id) DESC
关于SQL 使用不同条件两次使用相同字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20464192/