Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comparaison de la combinaison parent-enfant de 2 tables différentes dans SQL Server

Répondez selon les commentaires sur la question. Je l'ai essayé sur une base de données SQLite, et comme la syntaxe peut être décalée par rapport à SQLServer, je ne peux que vous donner des indications. Je n'ai pas de lien vers une base de données.

Retrouver les bases :

  1. Trouvez la paire mat_no, enfant dans mat_rel où le parent EST NULL
  2. Trouvez toutes les lignes dans mat_rel qui correspondent au mat_no et où le parent correspond à l'enfant de 1. Ajoutez le SQL de 1. dans un JOIN comme (SELECT ..).

Recherche d'incompatibilité (en comparant child=child et mat_no=mat_no) :

  1. Trouvez toutes les lignes de 2, où il n'y a pas de ligne correspondante dans mat_item. Utilisez un LEFT JOIN ou NOT EXISTS
  2. Trouvez toutes les lignes dans mat_item où il n'y a pas de ligne correspondante dans mat_rel à partir de 2. Utilisez un RIGHT JOIN ou NOT EXISTS.

Trouver à la fois 3 et 4 :

  1. Utiliser les deux SQL avec UNION ALL