0

私は2つのテーブルを持っています: nameTable

  • ユーザー名
  • ユーザーID
  • クラスID

マークテーブル

  • ユーザーID
  • クラスID
  • コースコード
  • マーク

同じclassIdを持つすべての学生のuserId、userName、courseCode、マークを表示したい。

create proc mark__classId
@classId int
as
select marksTable.courseCode, marksTable.userId, marksTable.marks, nameTable.userName
from marksTable, nameTable
where
marksTable.classId = nameTable.classId 

しかし、このクエリは非常にあいまいなo/pを返しました。

classId 10のID NAME1を持つ「name1 」が、それぞれのマーク '80,99,90' を持つ courseCode 'C1, C2, C3' に従うとします。

exec mark__classId 10
4

1 に答える 1

1

選択はこのようにする必要があります。受信パラメーターを使用するだけです。同様に、フィルターで a のJOIN代わりに aを使用する必要がありますCROSS JOIN

SELECT marksTable.courseCode, marksTable.userId, marksTable.marks, nameTable.userName
FROM marksTable
JOIN nameTable
    ON marksTable.classId = nameTable.classId 
WHERE marksTable.classId = @classId
于 2012-04-07T03:39:39.097 に答える