2016-11-25 6 views
-3

私はいくつかのテーブルがあります。彼らは学生に関する情報を持っています。基本的な学生データベースのように。 私はコースのテーブルを持っている:Course_IDに、COURSE_NAMEについてのSQLクエリ

Student_course : student_num,course_id 

student: name,student_num 

学生が1つの以上のコースを取ることができます。 Student_Courseタブと同様に :

Student_Num Course 

1    2 

1    3 

2    2 

私の質問はあるが、我々はコースを持っているし、それはIDができます= 2.Iはこのコースを取ることはありません学生の名前を見つけたいです。 このタブで可能ですか?可能であれば誰でも助けますか?

+1

mysqlまたはmysqlを使用しているDBに質問にタグを付けてください。あなたのテーブルのスキーマを何かのように正確に投稿してください。いくつかのデータ例を示して、何を試してみたかを示してください。これはあなたの宿題のようです。助けを求めて間違っていることはありませんが、あなたの努力の少なくとも最低限を示してください。 – Kacper

答えて

1

可能です(簡単です)。 NOT INの条件がソリューションの候補になります。 student_coursestudent_numは、(それがあるべきよう)not nullに拘束されている場合は、クエリが今

select student_name 
from student 
where student_id not in (select student_id 
          from student_course 
          where course_id = 2 
         ) 
; 

のような単純なものがありますが、この宿題で電源を入れる前に、それがどのように動作するか理解しよう。それの一部が混乱している場合は、明確にするために書き戻してください。たとえば、 student_coursestudent_idnullの場合、これが失敗する理由について考えてみましょう。 student_idnullstudent_courseテーブルにあっても、このソリューションを修正するにはどうすればよいですか?あなたの部分を何も考えずにこれを回しても、あなたにとっては何の利益もありません。

+0

私は本当に簡単でした。私はもっと時間を考えなければなりませんでした。 質問についての詳細を教えてください:) ありがとう –

+0

@MetehanAytaç - サンプルテーブルがある場合、 'student_course'テーブルで' course_id = 2'の行に対して 'student_id'を' null'に変更してください。クエリを再度実行します。何が起こっているのを見ますか?理由を理解してみてください。 (ヒント: 'x NOT IN(a、b、c)'は 'x!= a AND x!= b AND x!= c' ...を意味するので、' a'を 'null'に変更するとどうなりますか? – mathguy

関連する問題