0

次のテーブルがあります。

表1:

col:
20kasi
30kasi
40eswar
00eswar

テーブル 2:

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

他の列を取得できるように、数字を無視して名前でこれら2つを結合したいと思います。

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           ----            -----

これには適切な構文がありません。しかし、私はこのようにしたい。助言がありますか??

4

2 に答える 2

0

あなたは常に最初の2文字を数字として持っていますか? はいの場合、これは機能します

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))
于 2012-12-07T11:59:36.223 に答える
0

すべての文字列が正確に 2 桁の場合、次のように使用できます。

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

桁数が異なる可能性がある場合、またはそれらが異なる位置にある場合、MySql は正規表現をサポートしていないため、次のようなものを使用できます。

    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','')

(見た目はあまり良くありませんが、うまくいくはずです)

于 2012-12-07T11:53:45.107 に答える