SQL要求:从两个表中获取常见的图案列连接

时间:2012-12-07 11:45:46

标签: mysql sql

我有以下表格:

表1:

col:
20kasi
30kasi
40eswar
00eswar

表2:

col:
00kasi
05kasi
06kasi
03eswar
44eswar

我想通过忽略数字来加入这两个名字,以便我可以获得其他列。

select  {something from each tables}
  from table1, table2
 where t1.col1 = t2.col2

它应该显示:

col             {other colums from one of tables after join}

kasi            ----            ----- \n
eswar           ----            -----

这没有正确的语法。但我想要这样。有什么建议??

2 个答案:

答案 0 :(得分:0)

如果所有字符串都有两位数字,您可以使用:

SELECT *
FROM table1 inner join table2
     on SUBSTRING(table1.col, 3)=SUBSTRING(table2.col, 3)

如果位数可以变化,或者它们位于不同的位置,由于MySql不支持regexp,你可以使用以下内容:

    SELECT *
FROM table1 inner join table2
     on
        Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(table1.col,'9',''),'8',''),'7',''),'6',''),'5',''),'4',''),'3',''),'2',''),'1',''),'0','') =
        Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(table2.col,'9',''),'8',''),'7',''),'6',''),'5',''),'4',''),'3',''),'2',''),'1',''),'0','')

(它看起来不太好,但应该有效)

答案 1 :(得分:0)

你的前两个字符总是数字?如果是,那么这将起作用

select  {something from each tables}
  from table1 t1, table2 t2
 where substr(t1.col1,3,length(t1.col1)) = substr(t2.col2,3,length(t2.col2))