Как запросить несколько таблиц? - PullRequest
1 голос
/ 11 февраля 2011

Чего я хочу добиться, так это выбрать комментарии, написанные только моими друзьями. У меня есть следующие таблицы.

Друзья

id
my_user_id
friend_user_id

Комментарии

id
user_id
comment

Так я и делал до сих пор.

Сначала узнайте, кто мои друзья в таблице друзей:

mysql_query("SELECT friend_user_id FROM friends 
             WHERE my_user_id = $user_id ");

Затем я выбрал комментарии, написанные только моими друзьями.

mysql_query("SELECT * FROM comments WHERE user_id = 'my_first_friends_id' 
             OR user_id = 'my_second_friends_id' ");

Так вот, это была хромая версия, и она очень медленная. У меня миллионы записей в таблице комментариев.

Как лучше всего решить эту проблему? Как решить это за один запрос? А также очень важно быть быстрым.

1 Ответ

3 голосов
/ 11 февраля 2011
select c.id, c.user_id, c.comment
    from Friends f
        inner join Comments c
            on f.friend_user_id = c.user_id
    where f.my_user_id = $user_id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...