phpbar.de logo

Mailinglisten-Archive

[php] Re: Mehrere Tabellen gleichzeitig abfragen?

[php] Re: Mehrere Tabellen gleichzeitig abfragen?

Martin Ramsch m.ramsch_(at)_computer.org
Fri, 3 Sep 1999 17:42:39 +0200


Katja Ide schrieb am Freitag, den  3. September 1999:
> Ich möchte gerne mit einer Abfrage mehrere Tabellen einer Datenbank
> gleichzeitig durchsuchen, geht das?

Da MySQL den SQL-Befehl "UNION" nicht versteht, geht es leider nicht
mit einer einzigen SQL-Anfrage.

Du mußt also in Deinem PHP-Programm (per Schleife oder so) der Reihe
nach pro Tabelle je eine SQL-Anfrage abschicken und Doppelnennungen
selber herausfiltern.

Alternative ist, daß Du eine temporäre Tabelle anlegst, die einzelnen
SELECT-Ergebnisse jeweils in diese temporäre Tabelle einfügst und dann
am Ende ein SELECT DISTINCT aus dieser Tabelle machst.
Die reinen SQL-Anweisungen dazu sehen dann etwa so aus:
   CREATE TABLE tmp ( definitionen_der-benötigten_felder );
   LOCK TABLES tmp WRITE, tab1 READ, tab2 READ, tab3 READ, ...
   INSERT INTO tmp SELECT DISTINCT benötigte_felder FROM tab1 WHERE ...;
   INSERT INTO tmp SELECT DISTINCT benötigte_felder FROM tab2 WHERE ...;
   INSERT INTO tmp SELECT DISTINCT benötigte_felder FROM tab3 WHERE ...;
   SELECT DISTINCT * FROM tmp;
   UNLOCK TABLES;

Ciao,
  Martin
-- 
Martin Ramsch <m.ramsch_(at)_computer.org> <URL: http://ramsch.home.pages.de/ >
PGP: 0xE8EF4F75, 52 44 5E F3 B0 B1 38 26  E4 EC 80 58 7B 31 3A D7


php::bar PHP Wiki   -   Listenarchive