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