phpbar.de logo

Mailinglisten-Archive

Wie gestaltet man diese Abfrage ?

Wie gestaltet man diese Abfrage ?

Christoph 'Leo' Weißenborn chw-le at gmx.de
Don Okt 20 13:51:42 CEST 2005


Zitat von Benjamin Wolf <bwolf at mailserv.wiesloch.shs-it.de>:
>    SELECT $requiredFields
>      FROM tbl_benutzer
> LEFT JOIN tbl_suchbegriffe AS s1 ON ( tbl_benutzer.id = s1.bid
>       AND s1.suchbegriff = '".$validWords[0]."')
> LEFT JOIN tbl_suchbegriffe AS s2 ON ( tbl_benutzer.id = s2.bid
>       AND s2.suchbegriff = '".$validWords[1]."')
>     WHERE s1.suchbegriff IS NOT NULL
>       AND s2.suchbegriff IS NOT NULL
> [...]
> allerdings sollte auch der Name des Benutzers mit einbezogen werden.

Das ist ja nur noch eine primitive WHERE-Klausel mehr.
Ich kopiere mal von Andreas:
    SELECT $requiredFields
      FROM tbl_benutzer b
INNER JOIN tbl_suchbegriffe s1 ON s1.benutzerid=b.benutzerid AND s1.suchbegriff
= <gesuchter_begriff_1>
INNER JOIN tbl_suchbegriffe s2 ON s2.benutzerid=b.benutzerid AND s2.suchbegriff
= <gesuchter_begriff_2>
INNER JOIN tbl_suchbegriffe s3 ON s3.benutzerid=b.benutzerid AND s3.suchbegriff
= <gesuchter_begriff_3>
     WHERE b.vorname = <gesuchter_begriff_0>
        OR b.nachname = <gesuchter_begriff_0>

(... für 4 suchbegriffe, 0-4)

Noch ein Hinweis: Der WHERE-Teil mit "IS NOT NULL" ist überflüssig, denn solange
die Variablen nicht NULL sind, was man fürhin unterstellen kann, ist dies bei
einem INNER JOIN immer erfüllt. Den LEFT JOIN sollte man der Einfachheit halber
hier nicht benutzen.

Gruß,
 Christoph
-- 
Fingerprint=65B7 73B6 5969 AC2B 4572 39A2 0DBC DAC1 3D6A 45B7

----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.

-- 
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 


php::bar PHP Wiki   -   Listenarchive