Запрос, где ВСЕ связанные записи имеют значение атрибута X - PullRequest
0 голосов
/ 11 декабря 2018

У меня есть запрос, который подсчитывает связанные записи И связанный статус

SELECT
  orders.id,
  SUM(CASE WHEN s.shipment_status='CLOSED' THEN 1 ELSE 0 END) as closed,
  COUNT(*) as shipment_count
FROM orders as po
JOIN shipments as s ON s.order_id = po.id 
GROUP BY po.id

Я пытаюсь запросить все заказы, где все отгрузки CLOSED.

По сути, смотрите выше, просто возвращаясь, когда closed = shipment_count.

Если я добавлю предложение AND в объединение, оно просто ограничит количество отправлений.

1 Ответ

0 голосов
/ 11 декабря 2018

Я понял это с помощью предложения HAVING, в котором не используются атрибуты select.

SELECT
  orders.id
FROM orders as po
JOIN shipments as s ON s.order_id = po.id
GROUP BY po.id
HAVING SUM(CASE WHEN s.shipment_status='CLOSED' THEN 1 ELSE 0 END) = COUNT(*)

Оставляю мой ответ на случай, если он поможет другим.Возможно, лучшие ответы будут получены от сообщества.

...