I think my query is not optimized. Can you see any way to ameliorate ?
SELECT q_id, q_question, q_userID, q_targetID, q_type,
(SELECT concat(u_firstname, ' ',u_lastname) from user where u_id = q_userID),
(SELECT count(a_id) FROM answer where a_questionId = q_id),
(SELECT count(a_id) FROM answer where a_questionId = q_id AND a_response = 1)
FROM question INNER JOIN friend ON
(CASE
WHEN q_type = 1 THEN
(f_friend_one = q_userID AND f_friend_two = ?) OR
(f_friend_two = q_userID AND f_friend_one = ?) OR
(f_friend_one = q_targetID AND f_friend_two = ?) OR
(f_friend_two = q_targetID AND f_friend_one = ?)
WHEN q_type = 2 THEN (1 = ( SELECT count(g_id) FROM `group` where g_userID = ? and g_questionID = q_id))
END)
WHERE f_type = 1 AND (0 = ( SELECT count(a_id) FROM answer where a_userId = ? and a_questionId = q_id)) AND q_archived = 0