Я хочу получить результат, в котором значение столбца 1 можно найти для трех (или более) комбинаций столбцов 2 и 3 (попарно?). Пример ... вот гипотетическая таблица из 3 столбцов:
FRUIT | TRAIT | DESCRIBED
-------------------------------
Apple | color | red
Apple | shape | round
Pear | surface | smooth
pear | stem | red
grape | shape | round
grape | color | red
grape | surface | smooth
Я хочу найти фрукты, которые имеют форму = круглые, имеют цвет = красный и поверхность = гладкая.Результат в приведенной выше таблице должен быть "привлекательным", но мои попытки выяснить правильный SQL-запрос я не могу сузить.Я получаю Apple, потому что она красная, и груша, потому что она гладкая.Но я не хочу их.Мне нужен фрукт, который обнаруживается для всех трех признаков / описанных значений.
Я дошел до этого, думая, что есть способ использовать группу, и я использовал подзапросы, думая, что это даст мне возможностьтребуют.Но это все еще не дает мне просто «виноград» в результатах.
SELECT fruit /* DISTINCT ?*/ FROM table1 WHERE fruit
IN (SELECT fruit FROM table1 WHERE trait = 'shape' AND described = 'round')
AND (SELECT fruit FROM table1 WHERE trait = 'color' AND described = 'red')
AND (SELECT fruit FROM table1 WHERE trait = 'surface' AND described = 'smooth')
HAVING count(fruit) = 3 /* or whatever number of trait/described combos were searched for */