Возвращать родительские записи с дочерними записями, равными определенным значениям И где общий набор дочерних записей для данного родителя равен конкретное значение

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

Здесь ' Вот пример запроса, который приводит меня только наполовину туда, где я должен быть:

SELECT parent.item1, parent.item2, parent.index
FROM parent 
INNER JOIN child on parent.index = child.index 
WHERE child.value IN (11111111, 33333333)
GROUP BY parent.item1, parent.item2, parent.index
HAVING COUNT(child.value) = 2

К сожалению, этот запрос возвращает ЛЮБЫЕ родительские данные, у которых есть подмножество идентифицированных значений, включенных в оператор «IN». Я хочу, чтобы данные родителя только для родительских записей, чьи общие дочерние записи не превышают определенного числа (или, в моем случае, не превышают количество значений в операторе IN). Есть ли простой способ сделать это? ?

5
задан JeffO 24 August 2010 в 13:21
поделиться