Mailinglisten-Archive |
Hallo Heiko, vielleicht kann ich ein paar Anregungen geben Heiko Schubert wrote: > > 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) Lass doch den and-part mal weg und gib SELECT * ein, gib ku_nr=1 in die where-clause ein, dann siehst Du, was ueberhaupt gefunden wird: etwa so: SELECT * FROM artikel LEFT JOIN sent ON sent.art_nr=artikel.art_nr WHERE sent.ku_nr=1 AND sent.art_nr IS NULL > 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. > Hmm, ich verstehe nicht, was Du mit aktiviert meinst, aber ich vermute, dass Du irgendwie eine Endlosschleife induziert hast. Versuch es nochmal, wenn sich der Fehler wiederholt ist es zziemlich sicher. > 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? Die Zahl sollte kein Problem darstellen. > > 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 -- Bernd Weber Ziegelhofstr.38 *************************** 79110 Freiburg Tel.+49 761 8975888 Mobil: 0177-3627616 ***** You are just a last generation product of that computer matrix. >Zaphod Beeblebrox> --- *** Weitere Infos zur Mailingliste und MySQL unter http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive