0

i am new to sql I have 2 tables first one with marks and second one with students. marks have a primary key of marksid and students have primary key student id. I want to know what should be the relation ship between both the tables so each student can have separate marksid. and what will be the sql query to get their data.

I have tried one to one relationship with this select query s="select s.Student Name,z.Hourly1Marks from Student s,marks z " but it is showing Cartesian product of entries.

4

2 に答える 2

0

2つのテーブルがあるとします。

Students
--------------
IDStudent
Name
....

Marks
--------------
IDMarks
Hourly1Marks

StudendとMarksの関係は、「学生は0個以上のMarkを持つことができます」である場合、テーブルMarksに列を追加する必要があります。これを呼び出すとstudentID、この列は学生テーブルの外部キーとして使用されます。

次に、このクエリを書くことができます

select s.Name, z.Hourly1Marks 
from Student s left join marks z 
    on z.studentID = s.IDStudent

これにより、すべての生徒とそのマーク(マークのない生徒も)が返されます。または、少なくとも1つのマークのある生徒のみが必要な場合は

select s.Name, z.Hourly1Marks 
from Student s inner join marks z 
    on z.studentID = s.IDStudent
于 2012-05-12T12:02:23.357 に答える
0

INNER JOIN (各生徒が 1 つのマークを持つ場合、つまり 1:1 の関係) と LEFT JOIN (各生徒が複数のマークを持つことができる場合、つまり 1:n の関係) の概念を学習します。

制限なしで内部結合を使用しました。必要なのは次のようなものです

SELECT S.name, Z.marks
FROM students S
  JOIN marks Z ON S.student_id = Z.student_id

または同等に

SELECT S.name, Z.marks
FROM students S, marks Z
WHERE S.student_id = Z.student_id

1 対 1 の関係の場合、または

SELECT S.name, Z.marks
FROM students S
  LEFT JOIN marks Z ON S.student_id = Z.student_id

1:N 関係の場合。

于 2012-05-12T11:57:28.807 に答える