Einzelnen Beitrag anzeigen
  #1  
Alt 03.03.2016, 11:05:24
agoebel agoebel ist offline
Anfänger
 
Registriert seit: Mar 2016
Alter: 41
Beiträge: 1
SQL Query mit left join subquery

Hallo,

habe ein Problem mit einem komplexen SQL-Query. Ich führe einen LEFT JOIN mit einem Subselect aus, welcher ca. 60000 Datensätze zurückliefert. Hier das Statement:

Code:
SELECT SQL_CALC_FOUND_ROWS 
table0.`id`, 
... 
trackingNotizen.`notizen` 
FROM 
`tracking` table0 
INNER JOIN 
`benutzer` table1 ON table0.`mitarbeiter` = table1.`id` 
INNER JOIN 
`jobs` table2 ON table0.`job` = table2.`id` 
LEFT JOIN 
(SELECT 
tr.tracking, 
GROUP_CONCAT(CONCAT('', tr.type, ': ', tr.notiz) 
SEPARATOR '#') AS notizen 
FROM 
tracking_notizen tr 
INNER JOIN tracking t ON tr.tracking = t.id 
GROUP BY tr.tracking, t.mitarbeiter) trackingNotizen ON table0.`id` = trackingNotizen.`tracking` 
ORDER BY `id` DESC 
LIMIT 0 , 25;
Nun läuft dieses Query endlos und gibt kein Ergebnis zurück. Wenn ich in dem Subquery z.B. ein WHERE t.von > '2016-03-01' hinzufüge, dann funktioniert es, da die Datenbasis nicht mehr 60000, sondern ca. 200 sind. Beim Ausführen des einzelnen Subqueries gibt es keinerlei Geschwindigkeitsprobleme (Alle 60000 Datensätze in 3 Sekunden). Durch einen Inner Join anstatt eines Left Joins läuft es auch sehr schnell durch, ca. 3 Sekunden. In Kombination mit einem Left Join kommt es aber zur Endlos-Ausführung.

Was kann ich ändern, damit dieses Query schnell läuft.

Vielen Dank schonmal.
Mit Zitat antworten