sql >> Databasteknik >  >> RDS >> Sqlserver

Jämförelse av överordnad-underordnad kombination från 2 olika tabeller i SQL Server

Svara enligt kommentarer på frågan. Jag provade det på en SQLite-databas, och eftersom syntaxen kan vara avstängd jämfört med SQLServer, kan jag bara ge dig anvisningar. Jag har ingen länk till en databas.

Hitta grunderna:

  1. Hitta mat_no, underordnat par i mat_rel där förälder ÄR NULL
  2. Hitta alla rader i mat_rel som matchar mat_no och där förälder matchar barnet från 1. Lägg till SQL från 1. i en JOIN-like (SELECT ..).

Hitta missmatch (jämför barn=barn och mat_no=mat_no):

  1. Hitta alla rader från 2, där det inte finns någon matchande rad i mat_item. Använd en LEFT JOIN eller FINNS INTE
  2. Hitta alla rader i mat_item där det inte finns någon matchande rad i mat_rel från 2. Använd RIGHT JOIN eller INTE FINNS.

Hitta både 3 och 4:

  1. Använd båda SQL med UNION ALL



  1. ångra ändringar i en lagrad procedur

  2. Dödläge på SELECT/UPDATE

  3. Eko från MySQL-databas med mellanslag och radbrytningar?

  4. konstiga skript som genereras av SQL Server när ett jobb exporteras