С помощью разработчика 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);
мне нужно, чтобы проверить другую таблицу, так что мои результаты изолированы до точки, где она приносит назад значения 3, 4, 8 в столбце 1. Где бы я поместил запрос в предложение where в моем исходном запросе? – user2163396
@ user2163396 Трудно сказать, угадывая, что находится в этой второй таблице. Опубликовать образцы данных для обеих таблиц. – peterm
Хорошо, отредактировал мой вопрос, чтобы включить запрашиваемые данные. – user2163396