Einzelnen Beitrag anzeigen

davar

Registriert seit: 4. Feb 2005
311 Beiträge
 
Turbo Delphi für Win32
 
#1

SQL-Abfrage dauert zu lange

  Alt 28. Nov 2006, 10:44
Datenbank: MySQL • Version: 4.x • Zugriff über: Zeos
Hallo Leute,

bei folgende SQL-Abfrage dreht mein Rechner durch. PHPMyAdmin benötigt für das Ergebnis 7 Sekunden, Delphi mit Zeos kommt sogar auf Minuten.

Hab ich nun einen Denkfehler in die Abfrage eingebaut oder ist das normal?

Folgende Sachen sind gegeben:

Tabellen: kasse_vorgaenge, kasse_rechnungen, kasse_gutschriften, kasse_lieferscheine

In jedem einzelnen Datensatz von "kasse_vorgaenge" steht in der Spalte "vorgangsart", ob es sich um eine Rechnung, Lieferschein oder Gutschrift handelt. Mit

SELECT * FROM kasse_vorgaenge WHERE kundennummer = 1 WHERE datum BETWEEN 2006-05-01 AND 2006-11-28 komme ich ganz normal weiter. Nun möchte ich jedoch auch die jeweilige Rechnungs-, Gutschrifts- bzw. Lieferscheinnummer dabei haben, die in den anderen drei Tabellen stehen.

Also nehme ich folgende Abfrage:

Delphi-Quellcode:
SELECT
   kasse_vorgaenge.*, kasse_rechnungen.ID, kasse_gutschriften.ID, kasse_lieferscheine.ID
FROM
   kasse_vorgaenge, kasse_rechnungen, kasse_gutschriften, kasse_lieferscheine
WHERE
   kasse_vorgaenge.kundennummer = 1
  AND
   kasse_vorgaenge.datum BETWEEN 2006-05-01 AND 2006-11-28
  AND
   kasse_rechnungen.vorgangsnummer = kasse_vorgaenge.ID
  OR
   kasse_gutschriften.vorgangsnummer = kasse_vorgaenge.ID
  OR
   kasse_lieferscheine.vorgangsnummer = kasse_vorgaenge.ID
GROUP BY kasse_vorgaenge.ID
Hat jemand eine Idee, wie ich das Ergebnis schneller bekomme?


MfG

davar
  Mit Zitat antworten Zitat