php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 06.02.2006, 12:47  
Gast
 
Beiträge: n/a
Standard Anzahl Bestellungen per LEFT JOIN dauert, dauert, dauert ...

Hallo Forum,
leider hat mich die Suche nicht weiter gebracht, deshalb hier meine Frage:

Ich habe u.a. 2 Tabellen
customers -> Kunden
orders -> Bestellungen

Ich möchte bei den Abfragen aus der Kundentabelle die Anzahl der getätigten Bestellungen mit ermitteln.

So hatte ich es gemacht:

Code:
SELECT customers.* , COUNT( orders.order_id ) as orders_count 
FROM customers
LEFT JOIN orders ON customers.customer_id = orders.customer_id
GROUP BY customers.customer_id
LIMIT 0 , 30
Hier dauert die Abfrage 37 Sekunden bei ca. 4000 Kunden-Datensätzen und ca. 6000 Bestellungen.

Was mache ich denn da falsch ?

Besten dank im voraus,

keys71
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 06.02.2006, 14:01  
axo
Erfahrener Benutzer
 
Registriert seit: 24.12.2004
Beiträge: 1.814
axo ist zur Zeit noch ein unbeschriebenes Blatt
Standard

EXPLAIN SELECT wird dir helfen. wahrscheinlich stimmt ein index nicht.
axo ist offline   Mit Zitat antworten
Alt 06.02.2006, 14:16  
Gast
 
Beiträge: n/a
Standard

Danke für die Antwort.
Aber was sollte mir das sagen ?

  Mit Zitat antworten
Alt 06.02.2006, 14:56  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Setz mal customers.customer_id und orders.customer_id als PRIMARY KEY.
Zergling-new ist offline   Mit Zitat antworten
Alt 06.02.2006, 15:05  
Gast
 
Beiträge: n/a
Standard

Hmmmm, weiss nicht, denn orders.order_id ist autoincrement und PK.
customers.customer_id IST PRIMARY KEY
  Mit Zitat antworten
Alt 06.02.2006, 15:19  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Kann dir dann nicht mehr weiterhelfen
Zergling-new ist offline   Mit Zitat antworten
Alt 06.02.2006, 15:39  
Gast
 
Beiträge: n/a
Standard

Schade, trotzdem danke für die Bemühung!
  Mit Zitat antworten
Alt 06.02.2006, 15:43  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Hmm doch noch ein Nachtrag, zum Ausprobieren (sind nur Vermutungen)
- COUNT() weglassen
- GROUP BY und/oder LEFT JOIN weglassen und in einer eigenen Abfrage abholen

Vielleicht wirds dann flotter.
Zergling-new ist offline   Mit Zitat antworten
Alt 06.02.2006, 16:02  
Gast
 
Beiträge: n/a
Standard

Hmmm, genau das wollte ich vermeiden....
Ich werd's dann wohl machen müssen.
  Mit Zitat antworten
Alt 06.02.2006, 16:06  
Erfahrener Benutzer
 
Registriert seit: 13.11.2005
Beiträge: 2.583
xabbuh
Standard

Welche Ausgabe erhälst du mit SHOW CREATE TABLE customers und SHOW CREATE TABLE orders?
xabbuh ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
WHERE-Clause im Left Join cycap Datenbanken 2 06.11.2007 11:06
JOIN / LEFT JOIN und Co prinzli Datenbanken 12 05.11.2007 22:15
LEFT OUTER JOIN auf Nicht-Tabelle inu Datenbanken 15 29.03.2007 20:21
[solved] LEFT JOIN - #1066 - Not unique table/alias moose Datenbanken 6 12.12.2006 06:41
[gelöst] LEFT JOIN und trotzdem nicht alle Sätze da?!? stefanjann Datenbanken 3 24.10.2006 11:32
Problem mit Inner join Jabi Datenbanken 15 09.05.2006 14:10
Left outer join, timestamps php-newbie83 Datenbanken 29 27.04.2006 09:29
LEFT OUTER JOIN für mehr als 2 Tabellen ? Alpha Centauri Datenbanken 4 05.04.2006 16:18
Select Problem Datenbanken 17 16.01.2006 21:54
[Erledigt] LEFT JOIN Query Bildung Datenbanken 6 04.11.2005 15:24
[Erledigt] LEFT JOIN funtkioniert nicht richtig Datenbanken 3 19.10.2005 17:38
[Erledigt] left outer join mit bedingung Datenbanken 2 04.03.2005 00:52
left outer join Problem Datenbanken 5 21.01.2005 17:25
den letzte(grösten) eintrag aus LEFT JOIN Datenbanken 2 24.07.2004 18:33
[Erledigt] Mehrere COUNT(*) in einer Abfrage mit LEFT JOIN Datenbanken 8 18.06.2004 13:43

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
left join dauert lange, join dauert ewig, left join dauert ewig, anzahl bestellungen, left join läuft ewig, left join feststellen anzahl, left join dauert, anzahl left join, 100chf in euro, dauert dauert, select mit left join dauert zu lange, join dauert sekunden, left join dauert länger, abfrage join dauerrt wo

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:49 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.