当前位置: 首页 > 知识库问答 >
问题:

如果一列中的值存在于另一列中,则筛选行

丌官皓君
2023-03-14

我在Postgres 11中有以下表格:

col1   col2            col3               col4   
1      trial_1         ag-270              ag
2      trial_2         ag                  ag
3      trial_3         methotexate (mtx)   mtx
4      trial_4         mtx                 mtx
5      trial_5         hep-nor-b           nor-b

我想在col3列中搜索col4的每个值。如果col4中的值存在于col3中,我想保留其他行,该行应该被排除在外。

期望输出为:

col1   col2            col3               col4   
1      trial_1         ag-270              ag
2      trial_2         ag                  ag
3      trial_3         methotexate (mtx)   mtx
4      trial_4         mtx                 mtx

我无法尝试这方面的任何东西,因为我还无法找到解决方案。

共有3个答案

奚曦哲
2023-03-14
select a.*
from myTable a
where exists (
    select 1
    from myTable b
    where b.col3 = a.col4)

如果表中有许多行,则应确保对col3进行索引。

屠嘉
2023-03-14

这可以作为内部连接完成:

select distinct t.col1, t.col2, t.col3, t,col4
from T t inner join T t2 on t2.col3 = t.col4 
令狐新翰
2023-03-14

如果col4中的值存在于col3中,我希望保留行。

...翻译成:

SELECT *
FROM   tbl a
WHERE  EXISTS (SELECT FROM tbl b WHERE b.col3 = a.col4);

分贝

产生你想要的结果。

 类似资料:
  • 问题内容: 尝试通过一些非常有限的知识和经验来进行SQL查询。尝试了很多我通过搜索发现的内容,但没有得出我想要的结果。 我有四个表: 回复:KITS-[KIT_NO]和[ITEM_NO]都位于ITEMS表中。它们的串联是PK。 我想选择ORDERS,ORDERS.DATE,ORDER_DETAILS.ITEM_NO,ITEMS.DESC 没问题。一些简单的内部联接,我在路上。 困难在于在selec

  • 我有一个Python pandas DataFrame: 我想把一些股票的所有行放在一起,比如。这意味着我想要这样的语法: 既然熊猫不接受上述命令,如何达到目标?

  • 问题内容: 我有2张桌子,一张用于会员,另一张用于他们的服务。这些是MySQL 5.6服务器上的InnoDB表。 会员表: 服务表: 我尝试达到以下结果: 因此,如果服务表中存在用户ID,则列服务将为true或false。 我尝试使用JOIN和子查询来完成此操作,但没有成功,因此我需要您的帮助;) 问题答案: 使用服务表,请尝试此查询

  • 问题内容: 我有一个表,其中包含商店中每件商品的单价和其他详细信息。 另一个包含每个订单中包含的项目的详细信息。 现在我要计算 请注意,我希望它成为表本身的一部分,而不是作为其他视图或查询。我怎样才能做到这一点?我为此研究了触发器和其他机制,但是它们是否适用于不同表中的值,尤其是在存在此类约束的情况下? 我尝试过根据另一列计算出的Column进行以下触发吗?: 但这似乎没有用 问题答案: 这是如何

  • 问题内容: 我有一个: 我可以过滤库存编号‘600809’如下的行: 我想将一些股票的所有行汇总在一起,例如[‘600809’,‘600141’,‘600329’]。这意味着我想要这样的语法: 由于大熊猫不接受上述命令,如何实现目标? 问题答案: 使用isin方法。 。

  • 我有一个非常简单的问题。然而,我所能找到的都是非常复杂的答案,并不完全符合我的需求。 最接近的,我在这里发现: 弗洛德尔和埃迪的回答(data.table) 但是,我想额外指定如何根据不同列中的值处理指定列中的NA。 我有一个data.table,其中包含NA列,其中< code>fac是一个因子变量。 我想做的是根据< code>iso3c中的值将值< code>D和< code>E分配给< c