У меня есть этот запрос для приложения, которое я разрабатываю.Есть таблица ссылок, таблица авторов и таблица reference_authors.Существует подзапрос, чтобы вернуть всех авторов для данной ссылки, которые я затем отображаю в формате php.Подзапрос и запрос, выполняемые по отдельности, хороши и быстры.Однако, как только подзапрос помещен в основной запрос, выполнение всего занимает более 120 секунд.Я был бы признателен за свежие взгляды на это.Спасибо.
SELECT
rf.reference_id,
rf.reference_type_id,
rf.article_title,
rf.publication,
rf.annotation,
rf.publication_year,
(SELECT GROUP_CONCAT(a.author_name)
FROM authors_final AS a
INNER JOIN reference_authors AS ra2 ON ra2.author_id = a.author_id
WHERE ra2.reference_id = rf.reference_id
GROUP BY ra2.reference_id) AS authors
FROM
references_final AS rf
INNER JOIN reference_authors AS ra ON rf.reference_id = ra.reference_id
LEFT JOIN reference_institutes AS ri ON rf.reference_id = ri.reference_id;
Вот фиксированный запрос.Спасибо ребята за рекомендации.
SELECT
rf.reference_id,
rf.reference_type_id,
rf.article_title,
rf.publication,
rf.annotation,
rf.publication_year,
GROUP_CONCAT(a.author_name) AS authors
FROM
references_final as rf
INNER JOIN (reference_authors AS ra INNER JOIN authors_final AS a ON ra.author_id = a.author_id)
ON rf.reference_id = ra.reference_id
LEFT JOIN reference_institutes AS ri ON rf.reference_id = ri.reference_id
GROUP BY rf.reference_id