Сущность:
Название | ID
Свойства:
ID сущности | свойство
SELECT *
FROM "сущность"
WHERE
(
SELECT COUNT(*) FROM "свойства" WHERE "свойства"."ID сущности" = "сущность"."ID" AND
(
свойство = '1' OR
свойство = '2'
)
) = 2 --тут количество свойств на которые накладываются условия!
WITH cte AS (
SELECT * FROM Свойства
WHERE свойство in (1,2)
)
SELECT Название
FROM Сущность
WHERE ID in (
SELECT distinct c.id
FROM cte, Сущность c
WHERE c.id = cte.id
GROUP BY (c.id)
HAVING COUNT(c.id) > 1
)