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:
- Hitta mat_no, underordnat par i mat_rel där förälder ÄR NULL
- 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):
- 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
- 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:
- Använd båda SQL med UNION ALL