Mailinglisten-Archive |
Hab nach einigem Grübeln dochnoch eine Lösung mit nur einem Query gefunden: SELECT Personen_ID FROM Tabelle WHERE ( Eigenschafts_ID = '1' OR Eigenschafts_ID = '2' OR Eigenschafts_ID = '3') GROUP BY Personen_ID HAVING COUNT(Personen_ID) = 3 Dann gibts nur die auf die alle 3 ID's zutreffen. (*YIPPIEEE*) ;-) Gruß und Danke, Niko -----Ursprüngliche Nachricht----- Von: php-admin_(at)_infosoc.uni-koeln.de [mailto:php-admin_(at)_infosoc.uni-koeln.de]Im Auftrag von Ulf Wendel Gesendet: Donnerstag, 6. Januar 2000 21:07 An: php_(at)_solix.wiso.Uni-Koeln.DE Betreff: Re: [php] MySQL Problem (Was tun ohne Sub-Select?) pho-niko_(at)_pixelhouse.de wrote: > Was ist aber (passt jetzt nicht ganz aufs Problem) wenn ich alle Personen_ID's haben will die (genau)die Eigenschaft_ID 1, 27, und 34 haben (aber nicht die dazwischen. > > 'select person_id from liste where eigenschaft_id=1 and eigenschaft_id=27 and eigenschaft_id=34 (group by person_id)' funktioniert verständlicherweise nicht. Hallo Niko, in dem Fall mußt Du entweder doch zwei Queries absenden und aussortieren oder gleich statt n Eigenschaft-IDs einen (Binär-)Wert speichern, der aus einem logischen UND der einzelnen Eigenschaften entsteht. Dann kannst Du einfach und schnell nach beliebigen Kombinationen suchen. Ulf ------------------------------------------------------------- > > Folgendes Problem: > > > > Tabell: > > +++++++++++++++++++++++++++++++++ > > + Personen_ID + Eigenschafts_ID + > > +++++++++++++++++++++++++++++++++ > > + 1 + 1 + > > + 1 + 2 + > > + 1 + 3 + > > + 2 + 1 + > > + 2 + 2 + > > + 2 + 3 + > > + 3 + 1 + > > + 3 + 3 + > > + 4 + 1 + > > + 4 + 2 + > > + 5 + 3 + > > +++++++++++++++++++++++++++++++++ > > > > > > > > Ich möchte nun alle Personen_ID's ermitteln, die > > Eigenschafts_ID 1, 2 und 3 haben. Gibt es eine Möglichkeit > > diese Personen_ID's mit einem SQL-Statement (ohne Sub-Selects) > > abzufragen? Stehe ich da einfach auf der Leitung?
php::bar PHP Wiki - Listenarchive