phpbar.de logo

Mailinglisten-Archive

left join
Archiv Mailingliste mysql-de

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

left join



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 


Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive