簡體   English   中英

評估條件

[英]evaluate condition

我有3張桌子:課程,教授,學位。

課程表列出了所有正在教授的課程以及使用教授ID分配給該教授的教授。 教授表列出了所有教授以及他們的一般聯系信息。 它的主鍵是教授ID。 學位表列出了所有教授使用其教授ID作為外鍵持有的學位。

我遇到的問題是,當我想列出每門課程以及所指派的教授以及該教授是否具有博士學位時。 如果它們確實返回“ Y”,否則返回“ N”。 盡管表格中每個教授都有多個條目,但我只希望每個教授獲得一個結果。

樣品表1

ProfessorID Professor
01          Mary Smith
02          Harry Johnson
03          Teddy Fitz
04          Larry Manson
05          Sarah Love


CourseID    CourseName   ProfessorID
001         Math 101     01
002         English 201  01
003         English101   02
004         Math 101     03
005         Science 101  04

樣品表2

DegreeID    Degree  Doctorate Degree    ProfessorID
0001        BA      N                   01
0002        MS      N                   01
0003        PHD     Y                   01
0004        BA      N                   02
0005        MS      N                   02
0006        BA      N                   03
0007        MS      N                   03
0008        EDD     Y                   03
0009        BA      N                   04

我想要的結果是:

Course       Professor      Doctorate
Math 101     Mary Smith     Y
English 201  Mary Smith     Y
English101   Harry Johnson  N
Math 101     Teddy Fitz     Y
Science 101  Larry Manson   N

但是,我不斷獲得教授所擁有的每個學位的結果; 無論是博士學位還是不博士學位。 如以下內容:

Course      Professor       Doctorate
Math 101    Mary Smith      Y
Math 101    Mary Smith      N
English 201 Mary Smith      Y
English 201 Mary Smith      N
English101  Harry Johnson   N
Math 101    Teddy Fitz      Y
Science 101 Larry Manson    N

我應該如何編碼?

有多種修復方法。 給定最終結果表,您可以使用類似於以下內容的語句來獲取所需的結果:

SELECT Course, Professor, MAX(Doctorate) as Doctorate 
FROM YOUR_RESULTING_TABLE 
GROUP BY Course, Professor

字母的MAX()函數根據字典順序(字母順序)返回。

有很多方法可以實現您想要的。 我將舉兩個例子:

您可以使用LEFT JOIN + COALESCE ,因為那些沒有博士學位的教授可以默認為'N':

SELECT 
A.CourseName,
B.Professor,
COALESCE(C.Doctorate, 'N')
FROM course_table as A
LEFT JOIN professor_table as B
ON A.ProfessorID = B.ProfessorID
LEFT JOIN degree_table as C
ON B.ProfessorID = C.ProfessorID AND C.Doctorate = 'Y'

更新:

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM