连接具有相似列但值不同的两个表

时间:2020-03-31 03:14:19

标签: mysql sql join key

首先,我之前看过这个问题: (Two tables with similar columns but different primary keys

但是与我的问题略有不同。

我的桌子看起来像这样:

Table 1
ID     Name    Salary
123    Mike    5000
129    David   4000
133    Linda   4500

Table 2
ID      Dept
0123    IT
0129    Tech Support
0133    Analytics

我想基于ID将这两个表连接起来,以便我可以看到它们在表1和表2中的ID,名称和部门ID实际上是同一个人的,但是在前面是0表2中的ID,因此程序将其视为唯一值,使我得到如下结果:

Table result:
ID     Name    Dept
0123   null    IT
0129   null    Tech Support
0133   null    Analytics
123    Mike    null
129    David   null
133    Linda   null

有没有一种方法可以从表2中的ID中删除“ 0”或以某种方式加入它们?他们没有其他类似的列可以使用。应该是这样的:

Table result
ID     Name    Dept
123    Mike    IT
129    David   Tech Support
133    Linda   Analytics

谢谢,如果我的问题重复,很抱歉,我找不到像我这样的人。

1 个答案:

答案 0 :(得分:1)

如果IDTable 2的后三位是ID中可以找到的Table 1值,那么您只需输入Table 2.ID取值模1000(以去除任何前导数字),并在其上加上JOIN

SELECT t1.ID, t1.Name, t2.Dept
FROM `Table 1` t1
JOIN `Table 2` t2 ON t2.ID % 1000 = t1.ID

输出:

ID      Name    Dept
123     Mike    IT
129     David   Tech Support
133     Linda   Analytics

Demo on dbfiddle