Doctrine: Nur Artikel abrufen, die in 2 bestimmten Kategorien sind

Hallo,

in unserem Shop können Besucher Ersatzteile für verschiedene Computersysteme kaufen. Hierfür haben wir zwei Hauptkategorien angelegt: Computersysteme und Ersatzteile. So können die Kunden entweder den Kategoriebaum nach ihrem Computersystem gehen oder aber eben gleich nach Teilen suchen. Auf der Startseite hat der Kunde die Möglichkeit, sein Computersystem auszuwählen. Er kommt dann zu einer Art „Übersicht“ der Ersatzteilkategorien für sein Computersystem.

Die Ersatzteile werden den entsprechenden Kategorien der Computersysteme und Teilekategorien zugeordnet. So ergibt sich eine Abhängigkeit voneinander, da beispielsweise der RAM-Speicher für Computersystem A natürlich auch nur für dieses und vielleicht noch ein anderes System passt, jedoch nicht für Computersystem C.

Derzeit werden dem Kunden auf der Übersicht seines Computersystems alle Ersatzteilkategorien angezeigt. Eine davon ist z.B. „Serielle Schnittstellen“. Diese Kategorie ist jedoch für sein Computersystem leer - es gibt also keine seriellen Schnittstellen, die für sein System passen.

Daher möchte ich in der entsprechenden Doctrine Query gern die Kategorien herausfiltern, deren Artikel nicht in der entsprechenden Kategorie des Systems auftauchen. Ich benötige also eine Query in der Art (sinnbildlich):

$qb = Shopware()->Models()->createQueryBuilder();
$qb->select('c')
   ->from('Shopware\Models\Category\Category', 'c')
   ->leftJoin('c.articles', 'a', 'WITH', '(208, 42636) IN a.categories') // 208 => Teilekategorie, 42636 => Computersystem XY
   ->where('count(a) > 0');

Bitte helft mir - ich verzweifle gerade ein wenig an der Lösung.

Vielen Dank im Voraus!