PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Übergeordnete ID finden, wenn alle untergeordneten Elemente denselben Wert aufweisen

Probieren Sie die folgende Logik aus-

DEMO HIER

SELECT ID FROM C
WHERE ID NOT IN
(
    SELECT C.ID
    FROM C
    INNER JOIN F ON C.id = F.parent_id
    INNER JOIN oui ON F.ID = Oui.rel_id
    WHERE C.ID = CAST(oui.Product_Version AS INT)
    -- by default your column "Product Version" should be INT in table oui
)

Das Problem, das Sie im folgenden Kommentar erwähnt haben, Sie können diese entgegengesetzte Konvertierung wie folgt versuchen-

SELECT ID FROM C
WHERE ID NOT IN
(
    SELECT C.ID
    FROM C
    INNER JOIN F ON C.id = F.parent_id
    INNER JOIN oui ON F.ID = Oui.rel_id
    WHERE CAST(C.ID AS VARCHAR) = oui.Product_Version
)