phpbar.de logo

Mailinglisten-Archive

Re: noch ein versuch
Archiv Mailingliste mysql-de

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: noch ein versuch



DEXTER schrieb am Dienstag, den 31. August 1999:
> hi .. ich habe ein kleines problem.. und zwar habe ich eine
> tabelle die wie folg aussieht:
> 
> heimteam          teamnrgast
> .........         ...........
> Luberzen          KS Limmattal
> KZO Wetzikon      Wetzikon KZO
> FGZ               FGZ
> Looren            Maur
> Bühl              Wiedikon
> KZU Bülach        Bülach
> Talacker          Uster
> Kaserne           Birmensdorf
> Kaserne           Birmensdorf
> Nägelimoos        Kloten
> Kappeli           Altstetten
> FGZ               FGZ
> Schlossächer      Obfelden
> 
> 
> nun sollte ich beide tabellen in "ein" drop-down menue bringen ...
                       ^^^^^^^^
> doch die doppelten namen dürfen nur einmal aufgelistet werden.
> 
> ist das überhaupt möglich?

Nach dem Lesen der anderen Beiträge zum Thema wurde mir klar, daß an
der markierten Stelle "Spalten" stehen sollte und nicht "tabellen".

Die Antwort ist, ja, es ist möglich! (klar :-)

In Standard-SQL:
  ( SELECT DISTINCT heimteam FROM tabelle )
  UNION
  ( SELECT DISTINCT teamnrgast FROM tabelle )

  (Das UNION bildet die Vereinigung der beiden Ergebnismengen
   und läßt Duplikate dabei automatisch weg.)

Leider kennt MySQL den UNION-Befehl nicht, weshalb man dort
auf andere Möglichkeiten ausweichen muß.  Prinzipell kenne ich:

a) Einfach die beiden SELECTs getrennt nacheinander machen
   und auf der Anwendungsseite die beiden Ergebnismengen zu
   zusammenmischen, daß eventuelle Duplikate herausfallen.
   (Falls nötig, kann ich auch leicht ein Beispielprogramm
    dazu zusammenbauen ...)

b) Die Ergebnismengen der beiden SELECTs in eine temporäre
   Tabelle einfügen und dann von dort das Gesamtergebnis
   abrufen:
     CREATE TABLE tmp ( team CHAR(30) );
     LOCK TABLES tabelle READ, tmp WRITE;
     INSERT INTO tmp SELECT DISTINCT heimteam   FROM tabelle;
     INSERT INTO tmp SELECT DISTINCT teamnrgast FROM tabelle;
     SELECT DISTINCT team FROM tmp ORDER BY team;
     UNLOCK TABLES;
     DROP TABLE tmp;

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

---
*** Abmelden von dieser Mailingliste funktioniert per E-Mail
*** an mysql-de-request_(at)_lists.4t2.com mit Betreff/Subject: unsubscribe


Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive