这与这个问题密切相关,但是增加了另一个要求。
给定父表“ parent”
╔════════════╦════════╗ ║ PARENT_ID ║ NAME ║ ╠════════════╬════════╣ ║ 1 ║ bob ║ ║ 2 ║ carol ║ ║ 3 ║ stew ║ ╚════════════╩════════╝
以及父表与(此处未指定)属性表之间的多对多关系表“ rel”
╔════════════╦══════════╗ ║ PARENT_ID ║ PROP_ID ║ ╠════════════╬══════════╣ ║ 1 ║ 5 ║ ║ 1 ║ 1 ║ ║ 2 ║ 5 ║ ║ 2 ║ 4 ║ ║ 2 ║ 1 ║ ║ 3 ║ 1 ║ ║ 3 ║ 3 ║ ╚════════════╩══════════╝
我该如何选择具有 全部 且 只有 一组特定关系的所有父母?例如,通过样本数据,我如何找到与属性5和1完全相关的所有父母?
SELECT PARENT_ID FROM rel GROUP BY PARENT_ID HAVING SUM(PROP_ID NOT IN (5,1)) = 0 AND SUM(PROP_ID = 1) = 1 AND SUM(PROP_ID = 5) = 1