首页 > 解决方案 > 不喜欢嵌套 SQL

问题描述

我有一个包含电话号码值的表,它也可以是通配符,例如下面提到的 %

select phonenumber from table_2 ;

  1    5159199076
  2    210645%
  3    %0869067

我需要有关 SQL 查询的帮助,以排除 table_2 中存在的电话号码的所有值

所以 table_1 有这些值

ID     Phonenumber
   101     9757895378
   201   **2106450789**
   301   **9190869067**
   401     8757895078

select table_1.phone_number
from table_1
where table_1.phone_number not in 
(
  select phonenumber from table_2
  where phonenumber = table_1.phonenumber) 

如果 table_2 中没有通配符,例如 210645%%0869067 ,则此方法有效

我更新了 SQL

select table_1.phone_number
from table_1
where table_1.phone_number not like 
(
  select phonenumber from table_2
  )

这导致不返回任何行,如何修改 SQL 以获得正确的结果,以便不包含通配符?DB是postgres。

谢谢

标签: sqlpostgresqlsql-like

解决方案


select table_1.phone_number
from table_1
where table_1.phone_number not in 
(
  select phonenumber from table_2) 

推荐阅读