Mysql: Abfrage dauert ewig.

Die Logik stimmt auch bei seinem Query, wenn er das ON umdreht, wie von mir vorgeschlagen.
Wenn die rechte Tabelle im ON keinen passenden Datensatz zur linken Tabelle hat, wird ein Dummie-Datensatz mit NULL-Werten erzeugt.
Die WHERE-Klausel für t_update.LIEFER_ID wäre somit erfüllt.

Diese Methode wird sogar im Manual beschrieben.:)

Ok, tut mir leid, dies erschien mir nur nicht sofort ersichtlich ;)

Gruß
Nadriel
 
Leider werden immer noch Artikel gefunden die in der t_update vorhanden sind, ich werd noch verrückt mit dieser Abfrage!
 
Ja, absolut sicher.
Wie gesagt in der artikel_preis sind alle Artikel mit der Bestellnummer des Lieferanten, der Lieferanten_ID und der Artikel_ID gespeichert, theoretisch kann ja jeder Artikel von verschiedenen Lieferanten kommen. Zur Zeit habe ich nur 3 Artikel eines anderen Lieferanten in der Tabelle und die erscheinen auch nicht in deinem Query. Da bleibt also nur die Bestellnummer um einen Artikel zu identifizieren.
 
Also artikel_preis.BESTNUM ist eine Bestellnummer des Lieferanten?
Da wäre es doch gut möglich, dass Bestellnummern nicht eindeutig sind, oder sehe ich das falsch?

Erkläre doch noch mal bitte genau, was in jenen Spalten gespeichert wird:

artikel_preis.ARTIKEL_ID
artikel_preis.BESTNUM
t_update.ARTIKELNR
t_update.LIEFER_ID


und welches sind die Primärschlüssel der beiden Tabellen?
 
OK, dann verusch ichs mal:

Es gibt, neben einigen aber für mich nicht relevanten Tabellen, eine Tabelle ARTIKEL (primärer Schlüssel - REC_ID)

in der Tabelle ARTIKEL_PREIS findet man die ARTIKEL_ID als primären Schlüssel (entspricht der ARTIKEL.REC_ID) und die ADRESS_ID (ist die REC_ID des Lieferanten und entspricht der t_update.LIEFER_ID), die t_update.ARTIKELNT (primärer Schlüssel) entspricht der artikel_preis.BESTNUM.

Ich hoffe das ist einigermaßen verständlich.
 
Ich hoffe das ist einigermaßen verständlich.

Einigermaßen...mehr nicht:)

So, wie ich es verstanden habe, würde ich mal sagen, deine Primärschlüssel stellen dich irgendwann vor Probleme, aber egal, wenn du sagst, es sind die Primärschlüssel, wirds schon stimmen.
Kurze Erläuterung, warum ich Probleme erwarten würde:
in der artikel_preis sind alle Artikel mit der Bestellnummer des Lieferanten, der Lieferanten_ID und der Artikel_ID gespeichert,theoretisch kann ja jeder Artikel von verschiedenen Lieferanten kommen
....
in der Tabelle ARTIKEL_PREIS findet man die ARTIKEL_ID als primären Schlüssel
Und wenn nun 1 identischer Artikel bei 2 Anbietern erhältlich ist, wie willst du das machen? Du kannst die Artikel_ID nicht nochmal verwenden, weil Artikel_ID Primärschlüssel ist :eek:

Aber wie gesagt...daran wirds momentan nicht liegen, poste mal bitte einen Struktur-Dump der beiden Tabellen.
 
Hi

Nur mal so als Einwurf: Ich kenn mysql nicht so gut, aber ich sitz hier vor einer MSSQL-Datenbank mit rund 5 Mio. Einträgen und da funktionieren solche Joins in unter einer Minute. Kann es sein das dein Problem von der Datenbank-Konfiguration herrührt? z.B.: keine Indizes oder so was.
 
Vergesst mein wirres geschreibsel von gestern, es gibt logischer weise nur einen Primärschlüßel in der Tabelle artikel ;)

Ich habe den Fehler gefunden, hab ganz einfach vergessen die ARTIKELNR in der t_update zu indizieren.
Manchmal sieht man den Wald vor lauter Bäumen nicht mehr!

Dank an alle die versucht haben mir zu helfen.
 
Zurück