Myślę, że najlepszym sposobem jest utworzenie tymczasowej tabeli z zestawem potrzebnych elementów (procedura, która przyjmuje identyfikatory przedmiotów jako parametry lub coś w tym rodzaju), a następnie pozostawienie jej dołączyć ze wszystkimi powyższymi tabelami połączonymi razem.
Jeśli dla danego koszyka nie masz żadnych wartości null po prawej stronie lewego sprzężenia, koszyk zawiera wszystkie potrzebne elementy.