sql - 仅考虑字段的一部分,如何根据其他表列过滤表?
问题描述
假设我有下表(名为 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%'
但我想知道是否有另一种方法,更聪明。
解决方案
您可以使用exists
和like
:
select t1.*
from table_1 t1
where exists (
select 1 from table_2 t2 where t1.column3 like '%' || t2.column4 || '%'
)
推荐阅读
- c# - 我想知道从顶部计数的选定节点索引包括父节点
- dapper - dapper join splitOn 多列键
- angular - Angular 根据条件使用 SCSS
- mpandroidchart - mpandroidchart 我想通过散点图中的某个值更改点颜色
- odoo - 无法在 Odoo 中创建不平衡的日记帐分录
- android - 如何在 Fragment 中覆盖 dispatchTouchEvent
- java - 如何以多行而不是一长行打印arraylist
- hl7-fhir - Vonk FHIR 服务器捆绑验证问题
- javascript - 将 HTML 表格数据导出到 Excel 不起作用
- javascript - Heroku 显示空白页