SQL简单加入,我很难过

Cod*_*ome 4 sql join

我有一个列表:

JOB_NUM, HM_PH, BUS_PH, CALL1ST
Run Code Online (Sandbox Code Playgroud)

哪里job_num是唯一的号码

而且HM_PH,BUS_PHCALL1ST列10个电话号码

因此,使用上面的列顺序,示例数据将如下所示:

JOB_NUM, HM_PH,      BUS_PH,     CALL1ST
------------------------------------
12345,   4025557848, 9165897588, 7518884455  
10101,   8887776655, 8667416895, 5558884446
Run Code Online (Sandbox Code Playgroud)

我想要生产的是2列.

JOB_NUM, PHONE
Run Code Online (Sandbox Code Playgroud)

job_num列在每个电话号码旁边,例如:

JOB_NUM PHONE
---------------------
12345   4025557848  
12345   9165897588  
12345   7518884455  
10101   8887776655  
10101   8667416895  
10101   5558884446  
Run Code Online (Sandbox Code Playgroud)

我从哪里开始?

Mar*_*ers 10

你需要一个UNION(如果你想删除重复的行)或UNION ALL(如果你想保留重复的行):

SELECT JOB_NUM, HM_PH AS PHONE FROM yourtable
UNION
SELECT JOB_NUM, BUS_PH FROM yourtable
UNION
SELECT JOB_NUM, CALL1ST FROM yourtable
ORDER BY JOB_NUM
Run Code Online (Sandbox Code Playgroud)

  • @CodingIsAwesome:请注意`UNION`将删除重复项; `UNION ALL`不会,而且速度更快. (6认同)
  • +1 - 在结尾处添加"ORDER BY JOB_NUM". (2认同)