2013-05-19 2 views
0

С помощью разработчика oracle я запустил запрос, результатом которого является следующая таблица. Но мне нужны только результаты, когда column1 соответствует всем значениям столбцов 2 (3,4,8). Таким образом, выход будет 2, 3, но не 4. Я уверен, что есть способ привести этот результат без жесткого кодирования? Я думаю, что это своего рода объединение?Решено: запрос, возвращающий результат, когда один столбец соответствует всем значениям в другом столбце

select column1, column2 
    from table1 
    where column1 in (
     select column1 
     from table2 
     where depth >= 100) 
    order by column2; 

Выход:

column1 column2 
    3   2 
    8   2 
    4   2 
    3   3 
    4   3 
    8   3 
    4   4 

Table2

Column1  Area_Name  Depth 
    1   Lake   40 
    2   River   50 
    3   Ocean   150 
    4   Cliff   150 
    5   Mountain  90 
    6   Construction 60 
    7   Building  50 
    8   Random   100 
    9   Also Random  50 
    10   Another one  80 

Необходим выход:

column2 
    2 
    3 

Ok, это то, что я искал:

SELECT table1.column1 
    FROM table1 
     INNER JOIN table2 
     ON table1.column2 = table2.column2 
     WHERE table2.depth >= 100 
    GROUP BY boat_id 
    HAVING COUNT(*) >= (
     select count(*) 
     from table2 
     where depth >= 100); 

ответ

0

ОБНОВЛЕНО

WITH qry AS (
    SELECT column1, column2 
    FROM table1 
    WHERE column1 IN (
     SELECT column1 
      FROM table2 
     WHERE depth >= 100) 
) 
SELECT t1.column2 
    FROM qry t1 LEFT JOIN qry t2 
    ON t1.column1 = t2.column1 AND t1.column2 = t2.column2 
GROUP BY t1.column2 
HAVING COUNT(*) = (SELECT COUNT(DISTINCT column1) FROM qry) 
ORDER BY t1.column2 

Выход:

| COLUMN2 | 
----------- 
|  2 | 
|  3 | 

SQLFiddle

+0

мне нужно, чтобы проверить другую таблицу, так что мои результаты изолированы до точки, где она приносит назад значения 3, 4, 8 в столбце 1. Где бы я поместил запрос в предложение where в моем исходном запросе? – user2163396

+1

@ user2163396 Трудно сказать, угадывая, что находится в этой второй таблице. Опубликовать образцы данных для обеих таблиц. – peterm

+0

Хорошо, отредактировал мой вопрос, чтобы включить запрашиваемые данные. – user2163396

Смежные вопросы