Jawab sesuai komentar pada pertanyaan. Saya mencobanya di database SQLite, dan karena sintaksnya mungkin tidak aktif dibandingkan dengan SQLServer, saya hanya bisa memberi Anda petunjuk. Saya tidak memiliki tautan ke database.
Menemukan dasar-dasarnya:
- Temukan mat_no, pasangan anak di mat_rel di mana induknya NULL
- Temukan semua baris di mat_rel yang cocok dengan mat_no dan di mana induk cocok dengan anak dari 1. Tambahkan SQL dari 1. dalam JOIN like (SELECT ..).
Menemukan ketidakcocokan (membandingkan child=child dan mat_no=mat_no):
- Temukan semua baris dari 2, di mana tidak ada baris yang cocok di mat_item. Gunakan LEFT JOIN or NOT EXISTS
- Temukan semua baris di mat_item di mana tidak ada baris yang cocok di mat_rel dari 2. Gunakan RIGHT JOIN or NOT EXISTS.
Menemukan keduanya 3 dan 4:
- Gunakan kedua SQL dengan UNION ALL