У меня есть следующий SQL:Проверьте, есть ли несколько значений в столбце
SELECT DISTINCT cp_pessoa.id, cp_pessoa.nome
FROM cp_pessoa
LEFT JOIN cp_habilidade_freelancer ON (cp_habilidade_freelancer.id_freelancer = cp_pessoa.id)
LEFT JOIN cp_habilidade ON (cp_habilidade.id = cp_habilidade_freelancer.id_habilidade)
WHERE cp_habilidade.id = 71 OR cp_habilidade.id = 695
LIMIT 0, 10
Я только хочу, чтобы люди (cp_pessoa), которые имеют все навыки (71, 695).
Это может показаться простым, но я борюсь.
Примеры:
Если я использую ИЛИ следующие люди со следующими навыками (1,2,71) возвращаются (люди без возможности 695) Если я использую И следующие человек со следующими навыками (71, 695) не возвращаются
Спасибо!
Некоторые замечания по вашему собственному запросу: 1. Выберите DISTINCT очень часто признак плохого запроса - вы выбираете дубликаты, а затем вам нужно удалить их. Зачем вам внешнее соединение? Вам нужны только фрилансеры с такими навыками, поэтому зачем включать лиц, которые не являются фрилансерами, почему включают фрилансеров, у которых нет желаемых навыков? Предложение where снова удаляет все эти записи. И почему вы даже присоединяетесь к cp_habilidade, когда cp_habilidade_freelancer.id_habilidade уже содержит информацию, которую вы ищете? –
@ThorstenKettner запрос является частью другого – user4919