sql >> Databáze >  >> RDS >> PostgreSQL

Najděte ID rodiče, když všechny děti sdílejí stejnou hodnotu

Zkuste tuto logiku níže -

DEMO ZDE

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
)

Problém, který jste zmínili v níže uvedeném komentáři, můžete zkusit tento opačný převod, jak je uvedeno níže -

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
)


  1. Jak vyhledávací_cesta ovlivňuje rozlišení identifikátoru a aktuální schéma

  2. MySQL Najděte rozdíly v zásobách mezi dvěma tabulkami a vraťte výsledek

  3. Jak zkontrolovat velikost všech tabulek v databázi v MySQL

  4. Mysql dotaz nepoužívá index, když jsou v WHERE proměnné