phpbar.de logo

Mailinglisten-Archive

Re: left join
Archiv Mailingliste mysql-de

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

Re: left join



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 


Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive