Mailinglisten-Archive |
Hi alle zusammen. Am Don, 17 Feb 2000 schrieb Peter Cochius: > Das 'IN' versteht MySQL schon, aber zum jetzigen Zeitpunkt sind SubSelects > noch nicht impementiert. > so geht z.B. problemlos : > SELECT * FROM tabelle WHERE tabelle.ID IN (1,4,10,12); Das ursprünglich Problem lässt sich auch mit "IN" lösen, aber dazu muß eine (temporäre) Tabelle benutzt werden, da die IN-Liste auch eine Spalte einer Tabelle sein darf (zumindest bei Version 3.22.25). Ich nehme mal an, dass die ID's Int sind: # Tabelle erzeugen: create table temp1 (ID int not null, INDEX ID (ID)); # alle Kurs-ID's in die temp1 holen, bei denen der Lehrer eingetragen ist: insert into temp1 select ku_id from Adressen, AdressKurs where AdressKurs.ad_id=Adressen.ad_id AND Name = 'Schmidt' AND Funktion=1; # nun alle Schüler select Name, Vorname, ... from Adressen, AdressKurs, temp1 where ku_id IN (temp1.ID) AND AdressKurs.ad_id=Adressen.ad_id AND Funktion=0; Wenn's dabei Performance-Probleme geben sollte, muss man sich mal die Indexe anschauen (explain hilft da sehr!). Das Ganze lohnt sich latürnich nur, wenn entweder sehr viele ku_id in die Tabelle eingetragen werden (sonst kann man die IN-Liste auch von Hand füllen) oder diese Abfragen häufiger vorkommen. Ciao, Rene -- ---------------------------------------------------------------------- mailto:rene.fertig_(at)_wtal.de http://home.telebel.de/referti/ ====================================================================== >>>>>>>>>>>> PGP-Key auf Anfrage +++ PGP-Key on request <<<<<<<<<<<< --- *** Abmelden von dieser Mailingliste funktioniert per E-Mail *** an mysql-de-request_(at)_lists.4t2.com mit Betreff/Subject: unsubscribe
php::bar PHP Wiki - Listenarchive