Итак, у меня есть две таблицы, одна из которых содержит всех пользователей, а другая - пользователей с соответствующими группами. То, что я пытаюсь сделать, - это получить все идентификаторы пользователей во второй таблице, чтобы получить всю необходимую информацию из первой таблицы. Мое объяснение немного сумбурно, но я думаю, что приведенный ниже код должен быть достаточно ясноИспользование in from group_concat
SELECT
*
FROM
USER
WHERE
id IN (
SELECT
group_concat(userid)
FROM
user_membership
WHERE
groupid = 45
);
Однако то, что возвращает пустое множество. Когда я заменяю 'in' на '=', он возвращает одну запись (как и ожидалось). Что не так с моим синтаксисом? Благодарю.
Гораздо лучше использовать IN, поскольку существующий запрос занял 2,22 секунды, а в версии - 0,00. Но спасибо. –
Я не уверен, что это правда. Помните, что кеширование играет здесь большую роль. Для сравнения производительности вам нужно будет провести холодные тесты. Вы также можете добавить предложение 'EXPLAIN' в начале, чтобы увидеть план выполнения запроса для каждого из этих запросов. –