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