Оптимизировать подзапрос в MySQL

150
08 февраля 2020, 10:20
select
      surname_nominative as surname,
      name_nominative as name,
      patr_nominative as patr,
      studgroups_number,  spec_code,
      state_name, state_id,
      card_docnumber, (select doctype_acronym from doctype where doctype_id = 1 limit 1),
      card_index, card_findex,
      card_address, card_faddress,
      addcard_who, addcard_dwho,
      card_birthdate, dep_acronym, AvgGradeTable.avgGrade as avgGrade,
      study_kurs, formeduc_name, study.study_id as id,
      study_contract, card_email, card_phone, card_mphone,
      live_name
from
      card
      left JOIN study on study_card_id = card_id
      left JOIN addcard on card_id = addcard_card_id
      left JOIN student.live on study_live_id = live_id
      left JOIN (SELECT Study_id, AVG(AvgGrade) as avgGrade
                  from t_uEduCardStudyAvgGrade
                    WHERE isActual = 1 AND
                      isComplete = 1
                  GROUP BY Study_id
                  )
          AS AvgGradeTable on AvgGradeTable.Study_id = study.study_id
      join student.name on  name_id = card_name_id
      join surname on surname_id = card_surname_id
      join patr on card_patr_id = patr_id 
      join state on state_id = study_state_id
      join spec on spec_id = study_spec_id
      join studgroups on studgroups_id = study_studgroups_id
      join dep on dep_id = study_dep_id
      join formeduc on formeduc_id = study_formeduc_id
where
     card_country_id = 10 and
     card_doctype_id = 1 and 
      case when $region_code != 200
        then 
            $where_part substring(card_docnumber,1,2) = '" . $region_code . "'
        else
            $where_part substring(card_docnumber,1,2)
        end 
      order by
              surname, name, patr, spec_code, study_kurs ;

Какие могут быть способы оптимизировать вот такой вот подзапрос в left join?

READ ALSO
Ошибка развертывания web-приложения Tomcat

Ошибка развертывания web-приложения Tomcat

Создается многомодульный проект maven, где два модуля имеют еще несколько дочерних модулей, - один из которых содержит пакеты и классы общие...

186
Простейший сервис на спринг

Простейший сервис на спринг

у меня есть документ с кнопками и обработчик событий, как построить сервис на спринге который будет получать от кнопки поле int с ее номером...

181
java.lang.NullPointerException в JavaFX

java.lang.NullPointerException в JavaFX

У меня есть небольшой проект на JavaFXМне нужно что бы текст, который я ввожу в TextField считывался и по нажатию кнопки выводился в консоль

152