Kann es passieren, dass ein Produkt mehrere Interfaces mit der gleichen IID hat?
Claudius > > > Hallo Leute, > nach einiger Zeit habe ich wieder mit SQL zu tun und habe > prompt einen kleinen Knoten im Hirn. Es gibt 3 Tabellen: > > 1) Produkte ( PID, Name, ... ) > 2) Interfaces ( IID, Name, ... ) > 3) Produkte_Interfaces ( PID, IID ) > > - Jedes Produkt kann also 0 bis n Interfaces besitzen. > - Es sollen Produkte gefunden werden, die bestimmte > Interfaces besitzen. Die Eingabe ist also 0 bis n IIDs (wobei > 0 nicht wirklich einen Sinn macht). Produkte, die nicht alle > der angegebenen > IIDs besitzen, d�rfen dabei nicht getroffen werden. > > folgende beispielhafte (ich suche mal nach IID "1" und "3") > Abfrage ist also falsch, da sie alle findet, auch die, die > nur eine Teilmenge besitzen (also z.B. IID "1" aber nicht IID "3"): > > SELECT PID, Name > >FROM Produkte > WHERE PID IN > ( SELECT PID > FROM Produkte_Interfaces > WHERE IID=1 OR IID=3 ) > > Dann gab es noch folgende glorreiche Idee: > > SELECT PID, Name > >FROM Produkte > WHERE PID IN > ( SELECT PID > FROM Produkte_Interfaces > WHERE IID = 1 OR IID = 3 > GROUP BY PID > HAVING COUNT( IID ) = 2 ) > > Es wird im Subselect also eine Gruppe nach der PID gebildet > und nur die Gruppen selektiert, in denen 1) die IIDs > teilweise oder komplett vorkommen und 2) gleichzeitig die > Anzahl entsprechend > ist. Auf den ersten Blick schien das Ergebnis korrekt, bin > aber nicht sicher, ob das so ganz clean ist. �chz. > > Ich bin f�r alle IDeen oder L�sungsans�tze hoch dankbar... > > Gruesse > Matthias > > | [aspdedatabase] als [EMAIL PROTECTED] subscribed > | http://www.aspgerman.com/archiv/aspdedatabase/ = Listenarchiv > | Sie k�nnen sich unter folgender URL an- und abmelden: > | http://www.aspgerman.com/aspgerman/listen/anmelden/aspdedatabase.asp > | [aspdedatabase] als [email protected] subscribed | http://www.aspgerman.com/archiv/aspdedatabase/ = Listenarchiv | Sie k�nnen sich unter folgender URL an- und abmelden: | http://www.aspgerman.com/aspgerman/listen/anmelden/aspdedatabase.asp
