Mailinglisten-Archive |
Hallo Dirk, Dirk Schmedding wrote: > Hallo Liste, > ich habe ein Problem mit einer Abfrage unter MySQL. > > Ich habe 3 Tabellen über die ich abfragen möchte: > Personen,Adressen,Funktionen. > Die Tabellen sind folgendermaßen verknüpft: > > FUNKTION----PERSONEN----ADRESSEN > > Jede Person kann also n Adressen und m Funktionen haben. > > Jetzt möchte ich über ein Suchformular aus der DB alle Personen mit einer > bestimmten PLZ die mit M 'anfangen' und solwohl Funktion 2 als auch FUnktion > 9 sind. > > Das Script bastelt mir folgende Abfrage: > > > select distinct a.id,a.anrede,a.titel,a.firma,a.name as > name,a.vorname,b.plz,b.ort,b.email,b.strasse,b.hausnummer,a.created from > personen a,personen_adressen b, personen_funktion c where a.id=b.person and > a.id=c.person and (( c.funktion = 2 and c.funktion = 9 ) and a.name like 'M%' > and b.plz like '44%' ) > > Die liefert natürlich nix, weil in einem Datensatz die Funktion ja nicht > gleichzeitig 2 und 9 sein kann!? > > Wie stelle ich das also an? > Mit UNION würd es ja gehen, aber ich hab MySQL 3.x. > > gruss > und dank > > dirk! vielleicht hilft ja, wenn Du die personen_funktion zweimal joinst: SELECT a.id, ... FROM personen AS a, personen_adressen AS b, personen_funktion AS c, personen_funktion AS d WHERE a.id=b.person AND a.id=c.person AND a.id=d.person AND c.funktion=2 AND d.funktion=9 AND a.name LIKE 'M%' AND b.plz LIKE '44%' -- Mit freundlichen Grüßen Marco Schumann united-domains AG Tel.: 0 81 51 / 3 68 67 - 0 Fax: 0 81 51 / 3 68 67 - 77 http://www.united-domains.de mailto:schumann_(at)_united-domains.de --- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive