1

こんにちは、次のようなテーブルへの UNION があります。

SELECT GetStudentClassmates.AvatarFileName  as AvatarFileName,
       GetStudentClassmates.UserName        as UserName,
       GetStudentClassmates.RoleId          as RoleId
FROM GetStudentClassmates
WHERE GetStudentClassmates.StudentId = @studentId

UNION

SELECT GetStudentTeachers.AvatarFileName    as AvatarFileName,
       GetStudentTeachers.UserName          as UserName,
       GetStudentTeachers.RoleId            as RoleId
FROM GetStudentTeachers

ここで、UNION の結果を他のテーブルに結合し、最終結果に別の列を追加する必要があります。

これは私が使用しているJOINコードです

LEFT OUTER JOIN Sync_StudentAssignments as StudentAssignments 
  ON @studentId = StudentAssignments.StudentID 
  AND StudentAssignments.Deletion_Date IS NULL
LEFT OUTER JOIN Sync_StudentAssignmentInstances as StudentAssignmentInstances 
  ON StudentAssignments.StudentAssignmentID = StudentAssignmentInstances.StudentAssignmentID 
  AND StudentAssignmentInstances.Deletion_Date IS NULL

私の問題は、選択コードを追加する必要がある場所がわからないことです。これは、次のようになります。

SELECT StudentAssignmentInstances.ModuleInstanceId

最終テーブルには次の列が必要です。

AvatarFileName,
UserName,
RoleId,
ModuleInstanceId

どうすればこれを達成できますか?

4

3 に答える 3

4

ビットを括弧で囲み、UNIONインライン テーブルとして使用してから、通常どおり結合します。

-----------------------------------------------------------
-- choose the exact columns you need here using the aliases
-----------------------------------------------------------
select x.*, ssa.*, ssai.* from
(
   select ....
   union
   select ....
) as x
inner join Sync_StudentAssignments ssa on ...
inner join Sync_StudentAssignmentInstances ssai on ....
于 2013-07-16T09:05:30.483 に答える