SQL查询使用(self?)Join

时间:2014-02-04 05:48:13

标签: sql join subquery self-join

我对一个我不完全理解的问题有疑问。想知道是否有人可以帮助我,或者至少帮助我理解。

让我们说我们有一个'职位'表,其中包含两列职位编号'jobnum',以及员工编号'empnum'

Table: Jobs
---------------------------------------
|      jobnum      |      empnum      |
---------------------------------------
|       125        |       4785       |
|       100        |       4200       |
|       305        |       4001       |
|       125        |       4224       |
|       102        |       4840       |
|       100        |       4224       |
|       107        |       4534       |
|       255        |       4200       |
|       208        |       4224       |
|       301        |       4785       |
---------------------------------------

我喜欢在某个工作场所完成的工作,让我们把工作“125”,并想知道同一个员工的其他工作。它表明有两个人在职业125.'4224'和'4785'工作。我将如何编写一个SQL查询,该查询将输出执行作业“125”的相同人员的作业。我应该使用加入查询并且不能使用子查询

我理解如何使用子查询来执行此操作,但不知道如何使用Join进行此操作。我假设我会自我加入?也许我不完全理解Joins = /

1 个答案:

答案 0 :(得分:0)

使用Join

Select 
    j1.jobnum,
    j1.empnum
From jobs j1
    Join jobs j2
        On j1.empnum = j2.empnum
Where j2.jobnum = 125

查询显示“向我提供jobsj1)中与jobsj2)中有任何记录具有相同empnum的所有记录这就是你正在寻找的自我加入。