У меня есть следующий запрос SQL, который выполняет подзапрос и объединяет две таблицы, которые затем объединяются с первичной таблицей:
SELECT a.id, cgso.sf_guard_user_id as cgso, cgal.sf_guard_user_id as cgal
FROM table_a a
JOIN ( SELECT cgso.sf_guard_user_id, cgso.speciality_id
FROM table_c g
JOIN table_b as cgso
ON g.user_id = cgso.sf_guard_user_id and g.group_id = 2) as cgso
ON a.speciality_id = cgso.speciality_id
JOIN ( SELECT cgal.sf_guard_user_id, cgal.speciality_id
FROM table_c g
JOIN table_b as cgal
ON g.user_id = cgal.sf_guard_user_id and g.group_id = 1) as cgal
ON a.speciality_id = cgal.speciality_id
Вывод запроса:
id | cgso | cgal
----------------
1 | 2 | 54
Вывод в порядке и, как предполагалось, однако есть ли более эффективный способ получить тот же вывод? Любые советы или рекомендации будут высоко оценены.
Спасибо