Мне нужно сделать второй запрос внутри одного, пока я сделал это так, а затем просто сгруппировал по полю userid, работает. Но без группировки он показывает слишком много результатов, и мне было интересно, действительно ли эти сгруппированные результаты сначала запрашиваются, а затем фильтруются, чтобы загрузить сервер MySQL?
SELECT mn.userid, user_table.first_name, user_table.last_name, employer_info.emp_name, emp2.emp_name AS emp2name
FROM main as mn
LEFT JOIN position_info ON position_info.pos_id = mn.position
LEFT JOIN employer_info ON employer_info.emp_id = position_info.emp_id
LEFT JOIN position_info AS position2 ON pos2.pos_id = mn.position2
LEFT JOIN employer_info AS emp2 ON emp2.emp_id = pos2.emp_id
WHERE mn.type = 31 or mn.type = 3
GROUP BY mn.userid
Будет ли такой способ построения запроса более дружественным к ресурсам?
SELECT mn.userid, user_table.first_name, user_table.last_name, employer_info.emp_name, emp2.emp_name AS emp2name
FROM main as mn
LEFT JOIN position_info ON position_info.pos_id = mn.position
LEFT JOIN employer_info ON employer_info.emp_id = position_info.emp_id
LEFT JOIN employer_info AS emp2 ON emp2.emp_id = {
SELECT emp_id FROM position_info WHERE pos_id = mn.positions2
)
WHERE mn.type = 31 or mn.type = 3
GROUP BY mn.userid
запрос выглядит практически одинаковым по длине, но возвращает гораздо меньше результатов, когда не сгруппирован, поэтому лучше сделать это первым или вторым способом?
P.S. не обращайте внимания на код, это не вопрос