首先,我之前看过这个问题: (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
谢谢,如果我的问题重复,很抱歉,我找不到像我这样的人。
答案 0 :(得分:1)
如果ID
中Table 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