SQL查询具有2个不相关的WHERE条件

时间:2017-05-09 02:32:58

标签: sql

我是SQL的初学者,请帮我解决这个问题。 我有2张桌子:

**Assessment_Schedule** (Use to lookup Session number) <br>
**UnitCode | AssessmentNumber | Session_Start | Session_Due**
    Unit 1 | AN1              | Session 1     | Session 3   |
    Unit 1 | AN2              | **Session 2   | Session 2** |
    Unit 1 | AN3              | Session 5     | Session 9   |
    Unit 2 | AN1              | Session 6     | Session 8   |
    Unit 2 | AN2              | **Session 7   | Session 7** |
    Unit 2 | AN3              | Session 8     | Session 10  |

**-> Class_SessionDate <br>**
**ClassCode | SessionNumber | SessionDate **
     Class1 | Session 1     | 01/01/17 | 
     Class1 | Session 2     | 04/01/17 | 
     Class1 | Session 3     | 08/01/17 | 
     Class1 | Session 4     | 12/01/17 | 
     Class1 | Session 5     | 16/01/17 | 
     Class1 | Session 6     | 20/01/17 | 
     Class1 | Session 7     | 24/01/17 | 
     Class1 | Session 8     | 28/01/17 | 

我想在结果中实现的是

**ClassCode | UnitCode | AssessmentNumber | Ass_StartDate | Ass_DueDate     **
     Class1 | Unit 1   | AN1              | 01/01/17      | 08/01/17 
     Class1 | Unit 1   | AN2              | 04/01/17      | 04/01/17 
     Class1 | Unit 1   | AN3              | 16/01/17      | 01/02/17 
     Class1 | Unit 2   | AN1              | 20/01/17      | 28/01/17 
     Class1 | Unit 2   | AN2              | 24/01/17      | 24/01/17 
     Class1 | Unit 2   | AN3              | 28/01/17      | 10/02/17 

到目前为止,我已经实现了使用WHERE标准获取Ass_StartDate,Ass_DueDate只显示与Ass_StartDate相同的值。

然后,当我为Ass_DueDate输入“And WHERE”时,只生成2个结果:

Class1 | Unit 1 | AN2 | 04/01/17 | 04/01/17
Class1 | Unit 2 | AN2 | 24/01/17 | 24/01/17

请帮我解决这个问题。非常感谢你

1 个答案:

答案 0 :(得分:1)

您可以使用JOIN语句

之类的东西
SELECT T2.ClassCode, T1.UnitCode, T1.AssessmentNumber, (SELECT SessionDate FROM Table1 WHERE SessionNumber = T1.Session_Start), (SELECT SessionDate FROM 

Table1 WHERE SessionNumber = T1.Session_Due)

FROM Your_tables