我正在尝试获取所有未找到任何行的customer_id,例如:
SELECT customer_id FROM transaction WHERE count(*) = '0'
我也试过这个:
SELECT customer_id, count(*) as total_rows FROM transaction WHERE total_rows='0'
但是我得到的错误是total_rows不是列。
答案 0 :(得分:2)
最简单的方法是以一种不同的方式考虑它:"如何获得没有交易记录的所有客户的列表?"
简单!您将获得所有客户的列表,将其与其交易相关联,并过滤掉任何具有非空交易列表的客户。或者,在SQL中:
SELECT
customer.customer_id
FROM customer
LEFT JOIN transaction
ON transaction.customer_id = customer.customer_id
WHERE
transaction.transaction_id IS NULL
请注意,您不能像我一样只使用transaction
表。它不是customer_id
的完整列表,而是仅包含订单客户的ID。
您必须找到所有客户,然后按没有交易的客户进行过滤,而不是在transaction
上运营并找到没有交易的客户(您根本无法做到)。类似的概念,恰好相反。