Задать вопрос
@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 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Shultais Education
    Основы SQL
    3 месяца
    Далее
  • Shultais Education
    Продвинутый SQL
    1 месяц
    Далее
  • Merion Academy
    Основы реляционных баз данных SQL
    1 месяц
    Далее
Пригласить эксперта
Ответы на вопрос 1
kawabanga
@kawabanga
Вот будет у вас бот, с 30-40К вступлениями, выходами. И будет все виснуть на одном пользователе.

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

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

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