例如,我试图获取没有从其中找到任何行的所有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不是列。
发布于 2014-06-03 09:17:04
最简单的方法就是用一种不同的方式来思考这个问题:“我如何获得所有没有交易历史记录的客户的列表?”
很简单!您将得到所有客户的列表,并将其与他们的事务结合起来,并筛选出任何拥有非空事务列表的客户。或者,在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列表,而是只包含有订单的客户is。
您必须找到所有客户,然后筛选那些没有事务的客户,而不是在transaction上操作并找到没有事务的客户(这是您根本做不到的)。相似的概念,正好相反的顺序。
https://stackoverflow.com/questions/24011274
复制相似问题