以下

2017-07-06 12 views
1

は3つのテーブルとその関係を含み、私のデータベース・ダイアグラムである別のテーブルから単一の列に参照する複数の列を取得するクエリを登録しよう -以下

Database diagram

StudentsPersonalInfoSubjects現在、Students次の表は、持っています値。

Current data in Students table

私は以下のように表示するデータを照会しようとしています。私が間違っている出力の下に取得

SELECT FullName, SubjectName AS 'Subject1', SubjectName AS 'Subject2', 
SubjectName AS 'Subject3', SubjectName AS 'Subject4',SubjectName AS 'Subject5' 
FROM Subjects JOIN Students ON Students.Subject1 =Subjects.Id 
JOIN PersonalInfo ON PersonalInfo.Id=Students.StudId 

を試してみました何

Expected output

。最初の主題の名前だけを表示しています。

Output

誰も私に正しい道を案内でした。

+1

そう5は、合計で参加し、1は、各被験者の列に参加する必要があります。しかし、このデータ構造は間違っています(部分的には被験者の数が制限され、すべての被験者を一緒に報告することが難しいため)。代わりに、「Students」テーブル、「StudentsSubjects」テーブル、および「Subjects」テーブルが必要です。生徒にはIDと名前だけが含まれ、StudentSubjectsにはStudentIDとSubjectIDだけが含まれます。 StudentSubjectsは、各IDの外部キーを親テーブルに戻します。これは多対多の関係と呼ばれ、未来のために学ばなければならない貴重なものです。 – ADyson

+0

@ADyson提案をいただきありがとうございます。私はそれを試みます。あなたの時間を感謝します。 –

答えて