2014-09-03 40 views
0

我有兩個SQL語句我怎樣才能使這個select語句

第一個

SELECT 
    course.CourseNum, 
    course.CourseName, 
    course.CreditHours 
FROM course 
WHERE course.TypeID=1 

結果是

Course Num------Course Name---------Credit Hours          
1101----------Arabic Language----------3    
1103----------English LanguageI--------3    
1104----------English LanguageII-------3    
1106----------Hebrew LanguageI---------3    
1125----------Scientific Research------3    

第二個是隻顯示有

等級結果
SELECT 
    course.CourseNum, 
    course.CourseName, 
    course.CreditHours, 
    studentcoursecomplete.CourseGrade 
FROM course, studentcoursecomplete 
WHERE studentcoursecomplete.SID=1 
    And studentcoursecomplete.CourseID = course.CourseID 
    AND course.TypeID=1 

r結果是

Course Num---------Course Name----------Credit Hours-----Grade    
1101---------------Arabic Language-----------3------------60  
1103---------------English LanguageI---------3------------65   
1104---------------English LanguageII--------3------------70 

所以現在我需要一個SQL語句,顯示第一個記錄,除了第二個記錄! sql語句必須顯示此結果。

Course Num------Course Name---------Credit Hours     
1106----------Hebrew LanguageI---------3          
1125----------Scientific Research------3      
+1

您應該瞭解有關連接:http://blog.codinghorror.com/a-visual-explanation-of-sql-joins/瞭解那些會回答您的問題。 – 2014-09-03 17:06:59

+0

因此,您正在尋找所有不在「已完成」桶中的課程? – 2014-09-03 17:22:17

回答

0

你可以做一個左連接,查找NULL。儘可能使用表別名,以使代碼更具可讀性。

select 
    c.CourseNum, 
    c.CourseName, 
    c.CreditHours 
from course c 
left join studentcoursecomplete cc 
    on cc.CourseID = c.CourseID 
    and cc.SID = 1 
where c.TypeID=1 
    and cc.CourseID is null 
+0

你提到了LEFT-JOIN,但是把你的樣本留作JOIN。 – DRapp 2014-09-03 17:26:36

0

試試這個代碼。它應該給你想要的結果。

SELECT course.CourseNum, course.CourseName, course.CreditHours 
FROM course course left join 
studentcoursecomplete studentcoursecomplete on 
studentcoursecomplete.CourseID = course.CourseID and studentcoursecomplete.SID=1 
where studentcoursecomplete.CourseID is null 
and course.TypeID=1; 
0
SELECT course.CourseNum, course.CourseName, course.CreditHours 
FROM course 
WHERE course.TypeID=1 
MINUS 
SELECT course.CourseNum, course.CourseName,course.CreditHours,studentcoursecomplete.CourseGrade 
FROM course,studentcoursecomplete 
WHERE studentcoursecomplete.SID=1 And studentcoursecomplete.CourseID = course.CourseID AND course.TypeID=1; 

試試這個:)