Я ищу, чтобы использовать запрос LEFT JOIN для получения некоторых результатов из двух таблиц с отношением «один ко многим», но ограничить набор результатов на основе количество «детей». Я две таблицы структурированы как:Как ограничить набор результатов SQL LEFT JOIN query по счету
customers
id name ...
1 "bob" ...
2 "jill" ...
orders
id customer_id ...
100 1 ...
101 2 ...
102 1 ...
(Остальная часть данных в таблицах не имеет значения для этого запроса.)
Что я хотел бы сделать, это получить все идентификаторы клиентов и их идентификаторы заказов , отсортированный по клиенту, , но ограничен для клиентов, которые разместили несколько заказов. В этом примере, результаты будут выглядеть следующим образом:
cust_id order_id
1 100
1 102
Я начал с базовым LEFT JOIN для пары идентификаторов заказов с их клиентом, но не может понять, как выйти из всех клиентов, которые Хейвен» t заказал не менее двух раз.
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» на самом деле ничего не делает, так как мы устранили любого клиента, у которого не было никаких заказов. –