Thay vào đó, bạn có thể lưu 2 lựa chọn bên trong bằng cách sử dụng JOIN, điều này chắc chắn sẽ tăng tốc mọi thứ trong cả hai trường hợp (genre_id = 300
và genre_id = 900
).
SELECT
st.sid, st.title, st.sinopse,
(SELECT GROUP_CONCAT(CAST(genre_id AS CHAR)) FROM fanfiction_stories_genres WHERE sid = st.sid) as genres,
stats.reviews, stats.recomendacoes,
(SELECT GROUP_CONCAT(CAST(warning_id AS CHAR)) FROM fanfiction_stories_warnings WHERE sid = st.sid) as warnings_ids
FROM
fanfiction_stories AS st
LEFT JOIN fanfiction_stories_stats AS stats ON st.sid = stats.sid
JOIN fanfiction_stories_warnings w ON st.sid = w.sid AND w.warning_id = 5
JOIN fanfiction_stories_genres g ON st.sid = g.sid AND g.genre_id = 300
GROUP BY st.sid
ORDER BY st.sid ASC
LIMIT 20