sql - 从sql中的结果集中删除一行

标签 sql postgresql join sql-delete

我正在尝试运行以下查询。出于某种原因,我需要加入不同的表,其中包括所有表的结果。

假设查询是:

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

我想从上面的结果集中删除 value1 不是 1 的值。

预期输出:

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

在 postgresql 中有什么方法可以实现这个目标吗?搜索了不同的主题,但在任何其他帖子中都没有线索。任何建议表示赞赏。

注意:我不能使用 where a.value1 = 1 因为 SQL 查询中的逻辑会导致丢失一些用于计算的记录。所以整个想法是按原样运行 SQL 查询,但在 Select 操作完成后删除记录,只得到 value1 = 1 的结果。

最佳答案

使用子查询然后过滤掉where子句中的a.value1=1

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

关于sql - 从sql中的结果集中删除一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55389041/

相关文章:

postgresql "keepalives"参数

MySQL - 获取具有 "user-contact"的用户数

SQL:多值属性

javascript - 删除 Sequelize 迁移中的约束

sql - Ruby on Rails 搜索查询两个表

postgresql - Postgres 复制和临时表

sql - 搜索多个表并在结果行中显示表名

sql - 调整/重写具有许多左外连接和重型表的 SQL 查询

c# - 如何通过自定义加入数据集来获取此 Linq 查询?

mysql - SQL 中具有多个连接的复杂 where 子句