phpbar.de logo

Mailinglisten-Archive

SELECT =?ISO-8859-15?Q?=FCber_3_Tabellen_PROBLEM?=

SELECT über 3 Tabellen PROBLEM

Marco Schumann mysql-de_(at)_lists.bttr.org
Tue, 15 Oct 2002 09:04:30 +0200


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