Wie wäre es damit, erstmal die maximale Datenmenge zu ermitteln (ggf. als View speichern):
Code:
Select b.*,p.*,t.* From bilder b
Left Join zwbilderprogramme zbp on b.bID = zbp.bildID
Left Join programme p on zbp.programmID = p.pID
Left Join zwbildertags zbt on b.bID = zbt.bildID
Left Join tags t on zbt.tagID = t.tID
Darauf dann dynamisch die Abfrage basteln, weil für alle Kombinationen der Checkboxen eine eigene Abfrage zu basteln ist doch zu aufwendig.
Select bID From
(Select ... [s.o.]])
Where //ab hier dynamisch erzeugen
Or
Or