SQL使用几乎相同的字段连接2个表

时间:2016-01-11 08:15:35

标签: mysql sql

我需要在SQL中连接两个表。没有共同的领域。但是一个表有一个值为krin1001的字段,我需要它与另一个表中值为1001的行连接。

加入背后的想法是我有多个客户,但在一个表中,客户ID是' krin1001' ' krin1002'等等,在这张表中它们已售出多少。在另一张表中,客户是' 1001' ' 1002'等等,在这个表中有名称和地址等。因此,在匹配和加入之前,我总是需要从场上剥离的前4个角色。它可能并不总是' krin'我需要它与' khjo1001'此外,它仍然需要加入' 1001'来自另一个表的价值。

这可能吗?

希望你能帮助我。

3 个答案:

答案 0 :(得分:1)

您需要使用子字符串:

ON SUBSTRING(TableA.Field, 5, 4) = TableB.Field

或者右:

ON RIGHT(TableA.Field, 4) = TableB.Field

答案 1 :(得分:0)

您还可以尝试使用CHARINDEX函数进行连接操作。如果来自table1的值包含来自table2行的值,则该值将包含在结果集中。

;WITH table1 AS(
    SELECT 'krin1001' AS val
    UNION ALL
    SELECT 'xxx'
    UNION ALL
    SELECT 'xyz123'
),
table2 AS(
    SELECT '1001' AS val
    UNION ALL
    SELECT '12345'
    UNION ALL
    SELECT '123'
)

SELECT * FROM table1 AS t
  JOIN table2 AS T2 ON CHARINDEX(T2.val, T.val) > 0

答案 2 :(得分:0)

将其用作:

SELECT
*
FROM table t1
INNER JOIN table t2 ON RIGHT(t1.col1, 4) = t2.col1;