Удалить строку из набора результатов в sql - PullRequest
1 голос
/ 28 марта 2019

Я пытаюсь выполнить приведенный ниже запрос.по какой-то причине мне нужно объединить разные таблицы, которые включают результаты из всех таблиц.

Допустим, запрос:

Select a.value1, b.value2, c.value3 
from a 
join b on a.some_value = b.some_value1 
join c on c.Some_other_value = b.some_diff_value 
where (my conditions)...

Допустим, результат вышеприведенного запроса:

value1 | value2 | value3  
-------+--------+--------
1      | val1   | val2
1      | some1  | some2
2      | othr1  | othr2
3      | diff2  | diff3

Я хочу удалить из вышеуказанного результирующего набора значения, значение которых не равно 1.

Ожидаемый результат:

value1 | value2 | value3 
-------+--------+--------
1      | val1   | val2
1      | some1  | some2

Есть ли способ в postgresql, что яможно этого добиться?Искал разные темы, но без подсказки в других постах.Любые предложения приветствуются.

Примечание: я не могу использовать where a.value1 = 1, поскольку логика в запросе SQL приведет к потере некоторых записей для выполнения математических операций.Таким образом, вся идея состоит в том, чтобы запустить SQL-запрос как есть, но удалить записи после выполнения операции выбора и получить результат с value1 = 1.

1 Ответ

0 голосов
/ 28 марта 2019

использовать подзапрос, а затем отфильтровать a.value1=1 в предложении where

select * from
( 
Select a.value1,b.value2,c.value3 
        from a join b on a.some_value=b.some_value1 
        join c on c.Some_othr_value=b.some_diff_value 
    where your conditions
)AA where a.value1=1
...