将记录与来自两个不同表的通配符匹配

时间:2011-02-07 19:28:29

标签: sql

我有两张包含以下数据的表格(以及其他数据)。

表1

Value 1
'003232339639
'00264644106272
0026461226291#

我需要使用第1列作为标识符匹配下表中的第二列

表2

Value 1      Value 2
00264        1
0026485      2
0026481      3
00322889     4
00323283     5
00323288     6

所以我需要的结果如下:

结果

Table 1, Value 1   Table 2, Value 2         
'003232339639......4
'00264644106272....1
0026461226291#.....1

任何帮助都将受到赞赏 - 非常困在这里并且在excel中手动完成。

我希望这种格式有意义 - 我第一次使用这个论坛。

2 个答案:

答案 0 :(得分:0)

Melany,这个问题有点令人困惑(写得不正确)也许就是没有人回应的原因。我将尝试解释如何完成类似的选择

从TABLE1中选择数据匹配列(COL1)存在于两个表中

SELECT * FROM TABLE1
    INNER JOIN TABLE2
      ON TABLE1.COL1 = TABLE2.COL1
        AND TABLE1.COL1 = 'XYZ'
  

使用相同的副本

    SELECT * FROM TABLE1
            WHERE COL1 IN(SELECT COL1 FROM TABLE2
                           WHERE COL1 = 'XYZ')

答案 1 :(得分:0)

在SQL中,一个或多个字符的通配符为%,并与关键字LIKE一起使用。

所以我建议如下(如果您的目的是真正匹配Table1Value1开始的行,就像Table2.Value1中的值一样:

SELECT Table1.Value1, Table2.Value2 WHERE Table1.Value1 LIKE CONCAT(Table2.Value1, '%');

编辑:对于某些DBMS(例如SQLite),将CONCAT(x, y)替换为x || y