@Alk90
php, mysql, jquery, css, html, api

Как упростить или ускорить запрос?

Всем привет! Подскажите, есть ли более красивый способ определить является ли пользователь участником сообщества?
При выборе списков сообществ, нужно постоянно знать, является ли текущий пользователь участником каждого сообщества... В итоге запрос получается таким...
SELECT g.`id`, g.`title`, g.`descr`, gm.`id` is_member 
FROM `groups` g
LEFT JOIN `groups_members` gm ON gm.`group_id` = gm.`id` AND gm.`user_id` = ".$this->user->getUserId()."
LIMIT 0, 20

Смысл кода такой: мы получаем список групп и некоторые поля из них, а так же с помощью LEFT JOIN пытаемся получить из таблицы, отвечающей за хранение данных о участниках сообществ, строку, где ID сообщества и ID участника равны текущему сообществу и текущему пользователю (обратившемуся к скрипту).
После, на стороне php я проверяю, если значение is_member == NULL - значит пользователь не участник сообщества.
Правильный ли это подход? Что если таких проверок нужно много и с разными таблицами?
  • Вопрос задан
  • 48 просмотров
Пригласить эксперта
Ответы на вопрос 1
kawabanga
@kawabanga
Вот будет у вас бот, с 30-40К вступлениями, выходами. И будет все виснуть на одном пользователе.

Зачем вам делать выборку с названием и описанием группы заранее? Я бы сделал двумя запросами.
1) выбрал бы группы, где пользователь участвует.
2) Подгрузил описание групп.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы