Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Vergleich von Eltern-Kind-Kombinationen aus 2 verschiedenen Tabellen in SQL Server

Antworten Sie gemäß den Kommentaren zur Frage. Ich habe es auf einer SQLite-Datenbank ausprobiert, und da die Syntax im Vergleich zu SQLServer möglicherweise abweicht, kann ich Ihnen nur Anweisungen geben. Ich habe keinen Link zu einer Datenbank.

Die Grundlagen finden:

  1. Suchen Sie das Paar mat_no, child in mat_rel, wobei parent NULL ist
  2. Finde alle Zeilen in mat_rel, die mit mat_no übereinstimmen und wo parent mit dem child von 1 übereinstimmt. Füge die SQL von 1. in einem JOIN wie (SELECT ..) hinzu.

Nichtübereinstimmung finden (Kind=Kind und mat_no=mat_no vergleichen):

  1. Finde alle Zeilen von 2, wo es keine übereinstimmende Zeile in mat_item gibt. Verwenden Sie einen LEFT JOIN oder NOT EXISTS
  2. Finde alle Zeilen in mat_item, wo es keine passende Zeile in mat_rel aus 2 gibt. Verwende einen RIGHT JOIN oder NOT EXISTS.

Sowohl 3 als auch 4 finden:

  1. Verwenden Sie beide SQLs mit UNION ALL