У нас есть несколько случаев в наших играх на Facebook, где такая функциональность необходима, и у нас было много проблем с ней.В mySQL кажется, что каждая строка внешнего запроса будет перезапускать вложенный запрос, который будет перезапускать вложенный запрос, что делает его очень медленным.Мы обнаружили, что возвращать результаты внутреннего запроса в php, объединять его и затем запускать следующий запрос со скомпилированным списком было очень быстро.Не уверен, что есть решение, полностью находящееся внутри mySQL, но это решение у нас работает достаточно хорошо.
Другая потенциальная проблема может заключаться в индексации, вам нужно убедиться, что все столбцы, по которым вы ищите или упорядочиваетепо правильно проиндексированы.Использование функции MySQLs Explain в вашем запросе также поможет найти проблемы.