Ich denke, der beste Weg ist, eine temporäre Tabelle mit den benötigten Elementen zu erstellen (Verfahren, das die Element-IDs als Parameter oder etwas in dieser Richtung verwendet) und sie dann mit allen oben genannten Tabellen zu verbinden.
Wenn Sie für eine bestimmte Korb-ID KEINE Nullen auf der rechten Seite des linken Joins haben, enthält der Korb alle benötigten Artikel.