私は2つのテーブルを持っています:
User(LoginID,Password,Email,UserType) -- Primary key(LoginID)
Class(CourseCode, Semester,Year,ClassTime,ProID) -- Primary key(CourseCode, Semester,Year) -- Foreign key(ProID)
UserType は、教師、ティーチング アシスタント (TA)、または学生のいずれかです。1 つのクラスに 1 つの TA と 1 つの教師が含まれるように、どこに TA 属性を追加できるかわかりません。TAID を外部キーとして User テーブルに入れることを考えているので、次のようになります。
Class(CourseCode, Semester,Year,ClassTime,ProID,TAID)
しかし、それが正しいかどうかはわかりません。特定の科目を担当している先生やTAの名前を取得したいのですが、うまくいきません。以下のクエリを試しました。
SELECT dbo.[User].Name
FROM dbo.Class INNER JOIN
dbo.[User] ON dbo.Class.ProID = dbo.[User].LoginID AND dbo.Class.TAID = dbo.[User].LoginID
WHERE CrsCode=@CrsCode and Semester=@Semester and Year=@Year
質問:この問題について何か考えがある人はいますか? 前もって感謝します。
編集: 私は書いた:
alter proc SelectFacultyNameByID
@CrsCode nvarchar(5),
@Semester nvarchar(20),
@Year int
as
SELECT
u1.Name as Teacher,
u2.Name as Assistant
FROM
dbo.Class c
JOIN [User] u1
ON c.ProID = u1.LoginID
JOIN [User] u2
ON c.TAID = u2.LoginID
WHERE
c.CrsCode = @CrsCode
AND c.Semester = @Semester
AND c.Year = @Year
しかし、うまくいきません!