У меня проблема с запросом sql, он дает мне то, что я хочу, и на моем компьютере отлично работает, но поскольку я должен запускать свой db на компьютере школы, я попадаю в проблема. Запрос требует 34! секунд для выполнения, в то время как на моем компьютере она должна как 6.SQL-запрос медленный для выполнения
Это мой DB:
Запрос: вы должны найти 1 ПМ (Max (Carico)) из упражнений «Panca Orizzontale», «Squat», «Estensioni Bilanciere», «Squat» для каждого пользователя, который был членом спортзала более 5 лет.
Это вопрос, который я использую:
SELECT U.Nome
, U.Cognome
, MAX(P1.Carico) AS MaxPanca_Orizzontale
, MAX(P2.Carico) AS MaxSquat
, MAX(P3.Carico) AS MaxEstensioni_Bilanciere
, MAX(P4.Carico) AS MaxLento_Avanti
FROM utente AS U
left
join scheda AS S1
on U.CF=S1.ID_Utente
left
join programma AS P1
on S1.ID_Scheda = P1.ID_Scheda
AND P1.nRipetizioni = 1
AND P1.Esercizio = "Panca Orizzontale"
left
join scheda AS S2
on U.CF=S2.ID_Utente
left
join programma AS P2
on S2.ID_Scheda = P2.ID_Scheda
AND P2.nRipetizioni = 1
AND P2.Esercizio = "Squat"
left
join scheda AS S3
on U.CF = S3.ID_Utente
left
join programma AS P3
on S3.ID_Scheda = P3.ID_Scheda
AND P3.nRipetizioni = 1
AND P3.Esercizio = "Estensioni Bilanciere"
left
join scheda AS S4
on U.CF = S4.ID_Utente
left
join programma AS P4
on S4.ID_Scheda = P4.ID_Scheda
AND P4.nRipetizioni = 1
AND P4.Esercizio = "Lento Avanti"
WHERE U.CF IN(SELECT U.CF
FROM utente U
WHERE Data_Iscrizione < date_sub(curdate(), interval 5 year)
)
GROUP
BY U.Nome
, U.Cognome;
Это желаемый результат:
Вероятно, все те, присоединиться являются проблемой, есть способ сделать это быстрее выполнить? спасибо за ваше время
может вы обеспечиваете tablestructures и некоторые данные? – Philipp
... и желаемый результат. – Strawberry
добавил желаемый результат, теперь я пытаюсь добавить таблицу create – LucaPearl