![]() |
Datenbank: MySQl • Version: 5 • Zugriff über: ZEOS
SQL Abfrage vereinfachen?
Hallo,
ich habe 4 Tabellen: Positionen Auftraege Kunden Kundengruppe Jetzt möchte ich alle Positionen von allen Aufträgen von allen Kunden in einer bestimmten Kundengruppe ausgeben und habe folgende Abfrage dafür:
SQL-Code:
Also das das so nicht geht weis ich, nur war ich jetz zu faul das komplette ding hinzuschreiben.
... where positionen.auftragsid in (auftraege.kundenid in(kunden.kundengruppenid = "kundengruppenid"))
Aber wie kann ich die vereinfachen? Diese Abfrage dauert bei wenigen DS(etwa 5000 Positionen, 3000 Kunden, 2500 Aufträge und 5 Kundengruppen) schon einige Sekunden, was deutlich zu lange ist. Hat jemand ne Idee? Danke schonmal :angel: |
Re: SQL Abfrage vereinfachen?
Ersetze die subselects mal durch joins.
|
Re: SQL Abfrage vereinfachen?
joins in der where klausel? wie soll das dann aussehen?
|
Re: SQL Abfrage vereinfachen?
Nein die ganze Abfrage in einene Join verwandeln.
|
Re: SQL Abfrage vereinfachen?
Hallo,
das könnte etwa so aussehen
SQL-Code:
(ungetestet).
SELECT * FROM Kundengruppe A
JOIN Kunden B ON B.Gruppe = A.ID JOIN Auftraege C ON C.KundenID = B.ID JOIN Positionen D ON D.AutragsID = C.ID WHERE A.Kundengruppenbezeichnung = 'Wasweißich' Hth Deddy |
Re: SQL Abfrage vereinfachen?
Und dann noch einen Index auf die 'ID'-Spalten
|
Re: SQL Abfrage vereinfachen?
Richtig, aber ich war sowieso davon ausgegangen, dass es sich um "echte" Primär- und Fremdschlüssel handelt.
|
Re: SQL Abfrage vereinfachen?
Danke euch!! Funktioniert :thumb:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz