Mailinglisten-Archive |
Hallo Mitleser, ich experimentiere gerade etwas herum und habe folgende Tabellen: 1. artikel: art_nr int(10) unsigned 2. sent: ku_nr varchar(20) art_nr int(10) unsigned Alle Artikel, die schon "mal raus" sind (also ein bestimmter Kunde schon einmal erhalten hat), stehen in der Tabelle "sent". Will ich nun wissen, welche Artikel ein bestimmter Kunde noch nicht hat (jeder soll alle haben), dann habe ich mir folgendes überlegt: SELECT artikel.art_nr FROM artikel LEFT JOIN sent ON (sent.art_nr=artikel.art_nr AND sent.ku_nr=1) WHERE sent.art_nr IS NULL Klappt auch wunderbar, wenn in der Tabelle "sent" nicht zu viele Artikel stehen, die der Kunde "1" schon hat. Daraufhin hatte ich folgendes versucht: Alle Artikel aus der Tabelle "artikel" habe ich in die Tabelle "sent" für den Kunden "1" aktiviert und dann obige Abfrage noch einmal gestartet. Leider hing da mysql - zu mindestens dauerte die Abfrage ewig, so daß ich sie abgebrochen habe. Nun meine Frage: Ist meine Herangehensweise evtl. völlig falsch, oder warum geht die Abfrage zuerst sehr schnell (wenn sent leer ist), hängt dann aber bei meinem zweiten Versuch? Anmerkung: es handelt sich um ca. 20.000 Artikel. Da die Datensätze aber sehr klein sind, sollte das MySQL aber kaum interessieren. Danke schon einmal für evtl. Tips! Bye, Heiko --- *** Weitere Infos zur Mailingliste und MySQL unter http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive