MySQL: sessourceschonende Abfrage

Hey Alex, genau das war's. Aber ändere das am besten noch in deinem ersten Post, denn dort ist es auch falsch herum! Da ich nur Einträge größer 0 suche, brauche ich den zweiten Teil gar nicht. Ich verwende jetzt folgendes Statement:

SQL:
SELECT hu2.name, COUNT(*) AS gemeinsameHobbies, group_concat(h.hobby) AS Hobbies 
FROM hobby_user hu 
JOIN hobby_user hu2 ON hu.hobby_id = hu2.hobby_id 
LEFT JOIN hobbies AS h ON hu2.hobby_id = h.id 
WHERE 
  hu2.name <> hu.name AND 
  hu.name= 'User 3' 
GROUP BY hu2.name 
ORDER BY gemeinsameHobbies DESC;


Ganz herzlichen Dank und einen guten Start in die neue Woche!
 
Zuletzt bearbeitet von einem Moderator:
Teste nochmal mit jeweils einem Index auf hobby_id und name in der hobby_user Tabelle.
Dann braucht der keinen Tablescan beim Join und der where Clause.

SQL:
alter table hobby_user add index hobby_user_hobby_id_idx (hobby_id);
alter table hobby_user add index hobby_user_name_idx (name);

Gruss
Alex
 
Zurück