Вопрос

У меня есть две таблицы: groups и group_members.

Таблица общих кодов тегов содержит всю информацию для каждой группы, такую как ее идентификатор, заголовок, описание и т. д.

В таблице общих кодовых кодов перечислены все члены, которые не входят в каждую группу следующим образом:

родовое слово

По сути, я хочу перечислить ТРИ группы на странице, и я хочу перечислить только те группы, в которых БОЛЕЕ четырех участников.Затем внутри цикла groups мне нужны четыре члена, не входящие в эту группу.У меня нет проблем со списком групп и перечислением участников в другом внутреннем цикле, я просто не могу уточнить группы, чтобы отображались ТОЛЬКО те, у которых более 4 участников.

Кто-нибудь знает, как это сделать?Я уверен, что это с MySQL присоединяется.

Это было полезно?

Решение

MySQL использует для этих задач инструкцию HAVING .

Ваш запрос будет выглядеть так:

родовое слово

пример, когда ссылки имеют разные имена

родовое слово

Также убедитесь, что вы установили индексы в схеме базы данных для ключей, которые вы используете в JOINS, поскольку это может повлиять на производительность вашего сайта.

Другие советы

родовое слово

В вашей таблице groups_main есть ключевой столбец с именем id.Я считаю, что вы можете использовать синтаксис USING для соединения только в том случае, если в таблице groups_fans есть ключевой столбец с тем же именем, чего, вероятно, нет.Вместо этого попробуйте следующее:

LEFT JOIN groups_fans AS m ON m.group_id = g.id

Или замените group_id на любое соответствующее имя столбца в таблице groups_fans.

Может быть, я здесь ошибаюсь и не понимаю OP, но почему вы присоединяетесь к таблицам?

Если у вас есть таблица с элементами, и в этой таблице есть столбец с именем «group_id», вы можете просто запустить запрос к таблице элементов, чтобы получить количество элементов, сгруппированных по group_id.

родовое слово

Это должно иметь наименьшие накладные расходы просто потому, что вы избегаете соединения, но все же должно дать вам то, что вы хотели.

Если вам нужны подробные сведения о группе, ее описание и т. д., добавьте объединение из таблицы участников обратно в таблицу групп, чтобы получить имя, и это даст вам самый быстрый результат.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top