хитрая выборка

noonehere

Новичок
Есть таблица:
col1|col2
kra|tov1
kra|tov2
kra|tov3
zel|tov4
zel|tov5
gig|tov1
gig|tov2
gig|tov5

Мне надо задав задав два значения одного поля получить пересечение по второму полю.
Т.е. kra,gig =>tov1,tov2.
Простое решение итерациями я знаю - select col2 from table where col1=kra.
Потом select col2 from table where (col1=gig) and col2 IN (%result1%).

Существует ли способ извлечь нужную выборку kra,gig =>tov1,tov2 одним запросом? Разумеется параметров первой колонки может спрашиваться любое число а не 2.
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
любое число а не 2.
ф-ция implode тебе знакома?

Попробуй описать задачу более доступно.
Так, чтобы и соседский 5-й мальчик понял тебя.
 

noonehere

Новичок
impode щас посмотрю.

вложенный запрос дает то что нужно
SELECT DISTINCT (col2)
FROM`base_turbosort`
WHERE (col1="kra") AND (col2 IN (SELECT col2
FROM`base_turbosort`
WHERE (col1="gig")))

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

prolis

Новичок
Код:
select field2 from table
where field1 in ('some1','some2')
group by field2
having count(*)>1
 
Сверху