2010-02-10 2 views
1

У меня есть таблица перекрестных ссылок и вам нужно найти общие значения одного идентификатора, где второй идентификатор имеет несколько значений, заданных в запросе. Это легко сделать с помощью «ИЛИ», но я не могу для жизни понять, как это сделать с «И». Я уверен, что есть очевидное решение, которое смотрело на меня в течение этих многих часов, но я не могу найти его, несмотря на много испытаний и поиска. Буду признателен за любую оказанную помощь.mysql - Как найти общие значения в одном столбце таблицы на основе другого столбца с использованием AND?

cross_reference_table с колоннами: идентификатор, местоположение, Attendee

Использование OR легко:

SELECT DISTINCT location FROM cross_reference_table 
WHERE attendee = 6 OR attendee = 7 OR attendee = 8; 

Но мне нужно возвращать только те места, где посетители 6,7 и 8 все были при исполнении служебных обязанностей. Опять же, я не могу просто использовать AND в структуре запроса выше. Я бил головой об этом и просто не мог добиться прогресса. Спасибо заранее за любые предложения.

ответ

1

Try что-то вроде этого

select distinct location 
From cross_reference_table 
where attendee =6 or attendee = 7 or attendee=8 
group by attendee, location 
having count(*)=3 
+0

Спарки, работает как шарм. Мне пришлось удалить участника из GROUP BY, но он отлично работает. Большое спасибо. Хотелось бы, чтобы я опубликовал этот вопрос 24 часа назад. лол. Серый – Grey

+0

Не забудьте отметить это как правильный ответ, иначе Sparky не получит кредит! :-) –