Postgres加入LIKE

cc4*_*4re 3 database postgresql postgresql-9.0 postgresql-8.4

在PostgreSQL中我有一张桌子

tbl1
id -- RCODE -- COUNTRY --
1     US/MSR   United states of America
2     GY/LSR   Germany
3     CA/FSA   Canada

tbl2
id -- Name -- CCODE
33    T1      US        
44    Y1      CA       
55    W1      GY  
Run Code Online (Sandbox Code Playgroud)

这些表是否可以在tbl1上的字段RCODE上与LIKE条件连接,并且在tbl2上使用CCODE? 这样我就得到了结果

id --NAME-- RCODE -- CCODE--- COUNTRY
Run Code Online (Sandbox Code Playgroud)

我将提供tbl2的id,即当我给id 44时,结果将是

id --NAME-- RCODE -- CCODE--- COUNTRY
44   Y1     CA/FSA   CA       Canada
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我解决这个问题,它是PostgreSQL

一件事是RCODE中的前两个char与table2中的CCODE相同.

a_h*_*ame 6

select tbl2.name, tbl1.rcode, tbl2.ccode, tbl1.country
from tbl1 
  join tbl2 on substring(tbl1.rcode, 1, 2) = tbl2.ccode
Run Code Online (Sandbox Code Playgroud)

  • 如果您需要智能和小型索引,请使用相同的表达式:CREATE INDEX smart_ids ON tbl1(substring(tbl1.rcode,1,2)); (3认同)