Verknüpfte Abfrage

MySQL, PostgreSQL, SQLite
sirmark
Posts: 41
Joined: 2003-07-17 11:21
Location: Karlsruhe

Verknüpfte Abfrage

Post by sirmark » 2004-01-20 11:41

Hallo!

Vielleicht stehe ich auf dem Schlauch oder sehe den Wald vor lauter Bäumen nicht ...
Ich habe eine PHP-Datei die auf rund 15 Domains (ohne Ã?nderung) laufen soll. Diese Datei kennt seine Domain, macht eine sql-Abfrage in einer Tabelle, findet dort alle Einträge die zu der Domain gehören (soll diese auch zu erst anzeigen), dann ALLE anderen Einträge dieser Tabelle. Das ganze soll in einem Statement laufen, da ich den Limit-Befehl nutzen muss.
Eigentlich einfach, oder? Bin trotzdem am Verzweifeln. Hinzu kommt noch dass auf den Servern noch Mysql 3.x läuft. Angeblich soll ab 4.x verknüpfte Abfragen funktionieren. Doch auf meinem Testrechner bekomme ich auch nur syntax-Fehler ...
Zwei Fragen: Hat einer einen Ansatzpunkt die Abfrage noch auf mysql3.x hinzubekommen? Und gibt es eine Doku zu den verknüpften Abfragen in mysql 4.x (wühle seit heute morgen auf mysql.com herum - ohne grossen Erfolg).

Gruß und Danke

suntzu
RSAC
Posts: 698
Joined: 2002-12-20 19:47
Location: Mönchengladbach

Re: Verknüpfte Abfrage

Post by suntzu » 2004-01-20 13:07

Hi,

so wie ich dein Problem verstehe suchst du nach einer Sortierung, bei der die eigene (bekannte) Domain immer ganz vorne steht, dahinter die Ergebnisse mit anderen Domains in beliebiger Reihenfolge?

Gruß,
Dominik

sirmark
Posts: 41
Joined: 2003-07-17 11:21
Location: Karlsruhe

Re: Verknüpfte Abfrage

Post by sirmark » 2004-01-20 14:16

Ja, genau so ist es. Beschäftigt mich jetzt schon zwei Tage und irgendwie scheine ich mich zu "verrennen" ... bin für alle Vorschläge/Hinweise offen ... :P

kase
RSAC
Posts: 1041
Joined: 2002-10-14 22:56

Re: Verknüpfte Abfrage

Post by kase » 2004-01-20 14:51

Code: Select all

( SELECT  * 
FROM  `table` 
WHERE domain = 'www.domain1.de'
ORDER  BY domain, was_anderes )

UNION

( SELECT * 
FROM `table`
WHERE domain != 'www.domain1.de'
ORDER BY domain, was_anderes )

LIMIT 0,10
Um mySQL 4 kommst du nicht drum herum, allerdings wird mysql 4.1 NICHT benötigt, es geht also bereits mit dem Produktion Tree, 4.0.X.

Wichtig ist, dass vor dem LIMIT 0,10 kein 3. ORDER mehr steht, damit die 1. Abfrage auch die 1. Abfrage bleibt, und nicht wieder ins Gesamtresult sortiert wird.

sirmark
Posts: 41
Joined: 2003-07-17 11:21
Location: Karlsruhe

Re: Verknüpfte Abfrage

Post by sirmark » 2004-01-21 09:30

Funktioniert. Das Zauberwort hiess also UNION und mySQL4.0. Da werde ich mal in den sauren Apfel beissen müssen ... :-) Vielen Dank!