Есть что-то вроде сообществ с категориями, группами и сообщениями. Мне нужно выбрать все сообщения, которые связаны с пользователем. Эти отношения таковы, что нужны все сообщения, сделанные в любой группе, членом которой я являюсь. Я делаю это с помощью запроса с подзапросом.
Теперь я хочу как-то оптимизировать его, чтобы у меня был только один запрос без подзапроса. Единственная проблема, я не уверен, как. На данный момент, я ищу помощь.
SELECT ... /* Lot of stuff. */
FROM `posts`
JOIN `groups`
ON (`groups`.`id` = `posts`.`group_id`)
JOIN `users`
ON (`users`.`id` = `posts`.`user_id`)
WHERE `groups`.`id` IN (SELECT `group_id` FROM `group_members` WHERE `user_id` = '33') /* My sub-query. ID '33' is variable.*/
AND `posts`.`post_id` = 0 /* For only first level posts. */
Если вам нужна структура таблицы, просто спросите. Огромное спасибо за совет!