Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Confronto della combinazione padre-figlio da 2 tabelle diverse in SQL Server

Rispondi come da commenti sulla domanda. L'ho provato su un database SQLite e poiché la sintassi potrebbe essere disattivata rispetto a SQLServer, posso solo darti indicazioni. Non ho un collegamento a un database.

Trovare le basi:

  1. Trova la coppia mat_no, figlio in mat_rel dove il genitore È NULL
  2. Trova tutte le righe in mat_rel che corrispondono a mat_no e dove parent corrisponde al figlio da 1. Aggiungi l'SQL da 1. in un JOIN come (SELECT ..).

Trovare una mancata corrispondenza (confronto child=child e mat_no=mat_no):

  1. Trova tutte le righe da 2, dove non ci sono righe corrispondenti in mat_item. Usa un LEFT JOIN o NOT EXISTS
  2. Trova tutte le righe in mat_item dove non ci sono righe corrispondenti in mat_rel da 2. Usa RIGHT JOIN o NOT EXISTS.

Trovare sia 3 che 4:

  1. Utilizza entrambi gli SQL con UNION ALL