我正在寻找使用LEFT JOIN查询从一对多关系的两个表获取一些结果,但限制基于计数“孩子”。我有两个表结构类似:如何通过计数限制SQL 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'没有做任何事情。 –