Примечание: использование MySQL 4.0, что означает отсутствие подзапросов (в настоящее время).
У меня есть 2 таблицы:
- Таблица "user_details"
- Таблица «навыков», в которой есть user_id и «skill_id», которые соответствуют предопределенному набору навыков, определенному в другом месте.
Текущий запрос позволяет администратору искать пользователей, выбирая навыки, и запрос работает в режиме ИЛИ, например:
LEFT JOIN skills
ON (ud.user_id = skills.user_id)
WHERE skills.skill_id in (51, 52, 53, 54, 55)
GROUP BY ud.user_id
Это возвращает слишком много записей, и поэтому я хочу, чтобы это поле поиска работало в стиле AND, где пользователь должен иметь ВСЕ выбранные навыки, которые будут возвращены при поиске.
Может быть возможно обновить MySQL, если подзапросы - лучший вариант.
edit: Что-то связанное с группировкой, подсчетом, наличием и т. Д. Можете ли вы ограничить группу по команде, указав количество возвращаемых строк? (например, 5 в этом примере).
edit2: тестирование:
HAVING COUNT( * ) > 5