У меня есть groups
, users
и users_groups
таблица. Отношения между пользователями и группами очень многим. Пользователи могут быть выделены нескольким группам. Я хотел бы запустить запрос, который получает список групп, которые являются COMMON между user_id1 и user_id2.Поиск общих строк с SQL
Я построил следующий запрос, но он, кажется, разбивает систему и сервер mysql (на xampp), и страница навсегда загружается (т. Е. Не загружается).
Почему это? В таблице пользователей около 6000 тестовых пользователей, 30 групп в таблице групп и 70 000 записей users_groups. Есть ли лучший способ структурировать этот запрос?
$user_id1 = $this->db->escape($user_id1);
$user_id2 = $this->db->escape($user_id2);
$sql = "SELECT $select_string FROM users_groups
INNER JOIN groups ON groups.group_id = users_groups.ug_group_id
WHERE ug_group_id IN (SELECT ug_group_id FROM users_groups WHERE ug_user_id = $user_id2)
AND ug_user_id = $user_id1 LIMIT 10";
$query = $this->db->query($sql);
Спасибо. Мне пришлось изменить ug_group_id в обеих строках 4 и 5 на ug_user_id, и после этого он работал. Еще раз спасибо! – emkay
@emkay Приветствую вас ... –