我希望使用LEFT JOIN查询从具有一对多关系的两个表中获取一些结果,但基于“子项”的计数限制结果集。我的两个表结构如下:
customers
id name ...
1 "bob" ...
2 "jill" ...
orders
id customer_id ...
100 1 ...
101 2 ...
102 1 ...
(表中其余数据对于此查询无关。)
我想要做的是获取所有客户ID和他们的订单ID,按客户排序,但限制只有下过多于一份订单的客户。在这个例子中,结果应如下所示:
cust_id order_id
1 100
1 102
我从基本的LEFT JOIN开始,将订单ID与其客户配对,但无法确定如何排除所有未至少下过两次单的客户。
SELECT
`customers`.`id` AS `cust_id`,
`orders`.`id` AS `order_id`
FROM
`customers`
LEFT JOIN `orders` ON
`customers`.`id` = `orders`.`customer_id`
ORDER BY
`cust_id`
感谢大家。
LEFT JOIN
实际上并没有起到什么作用。 - Conrad Frix