auch wenn du die lösung schon hast, das wäre wohl die einfachste variante
Code:
select lager.schrank, lager.schublade, list(distinct fach)
from lager
group by 1,2
having list(distinct fach)='Schraube_50'
könnte aber auf größeren Tabellen ohne passende indizes relativ lahm sein
manchmal ist es daher effektiver, mit hilfe von triggern hilfstabellen zu füllen
(das gesamte datenmodell würde ich eh nicht so empfehlen, aber du schreibst
ja selber, das es halt so ist wie das ist)