首页 > 解决方案 > 仅考虑字段的一部分,如何根据其他表列过滤表?

问题描述

假设我有下表(名为 table_1):

Column1    Column2    Column3
A          123        'ABCDE'
B          333        'FGHIJ'
C          444        'KLMNO'

我还有另一张桌子,就像这张桌子(名为 table_2):

Column4
'BCD'      
'FGH'

现在,我想使用 table_2 过滤 table_1。但是,如您所见,Column4 不包含 Column3 的全名,只是其中的一部分。我考虑过导出 Column4,将其放入 Notes(或任何其他文本应用程序)并执行以下操作:

select * from table_1 where Column3 like '%BCD%' or Column3 like '%FGH%'

但我想知道是否有另一种方法,更聪明。

标签: sqlpostgresql

解决方案


您可以使用existslike

select t1.*
from table_1 t1
where exists (
    select 1 from table_2 t2 where t1.column3 like '%' || t2.column4 || '%'
)

推荐阅读