使用与前 n 个数字匹配的部分字符串加入 PostgreSQL

Join using partial string match with the first n number PostgreSQL

我正在尝试根据 PostgreSQL 中的部分字符串匹配来连接两个表。例如,我有以下内容:

table1.code
010129  
022933
029482
table2.new_code
010129847648
022933646495
029482732610

我想根据两个表中匹配的前 6 个字符进行联接。出于绝望,我尝试了类似下面的方法,但 Postgres 似乎不喜欢它。

SELECT table1.code, table2.new_code,
FROM table1 
INNER JOIN table2 
ON table1.code = LEFT(table2.code, 6)

有没有办法做我想做的事?

除了一些语法问题外,您所拥有的应该可以使用。 table2 中的列名为 new_code 并且 select 列表中有一个额外的逗号。

SELECT table1.code, table2.new_code
FROM table1 
INNER JOIN table2 
ON table1.code = LEFT(table2.new_code, 6);