-3

SQLでテーブルをマップする方法は?

私は 3 つのテーブルを持っています。SQLクエリを使用してこのテーブルをマップしたい.

学生「テーブル1」

Studnt_id   password
123         5525
124         2233

Student_info 'テーブル 2'

Studnt_id   student_name    subject marks
123              gautam     maths     90
124              gaurav     maths     85

学生個人情報「表3」

firstname   lastname    address
gautam      jethva          banglore, karnataka
gaurav      rathod          jamnagar , gujarat

この 3 つのテーブルをマップし、結果に id、student_name、lastname、subject、marks、address を表示したい

4

1 に答える 1

0

テーブルを結合(マップ)する必要があります。Jeff Atwood は、彼の記事「 A Visual Explanation of SQL Joins」で、これらがどのように機能するかについて優れた概要を説明しています。

student上記の例では、studn_id 列を使用してテーブル('table1') と student_info('table2')をリンクできるはずです。3 番目は、最初の 2 つのテーブルのいずれにも保証されたキーが返されないように見えるため、よりトリッキーになる可能性があります。

例:

SELECT S.student_name, S.subject, S.marks 
FROM student S
INNER JOIN student_info SI ON S.Studnt_id = SI.Studnt_id

student一致する行があるすべての行を提供しますstudent_info

ただし、3 番目のテーブルをリンクするのstudent_personal_infoははるかに困難です。ここでの問題は、特定の学生に対してこのテーブルの行を取得する一意の方法がないように見えることです.名前で参加することはできますが、これは一意であるとは限りません.

テーブル student_personal_infoStudnt_idには、特定の学生の行を一意に選択できるようにするための列が含まれている必要があります。ただし、特定の例を考えると、次のように動作します。

SELECT S.student_name, S.subject, S.marks, SPI.lastname, SPI.address 
FROM student S
INNER JOIN student_info SI ON S.Studnt_id = SI.Studnt_id
INNER JOIN student_personal_info SPI ON SI.student_name = SPI.firstname

ただし、複数の学生が同じ名前を共有している場合は、複数の一致が得られます。

于 2013-06-10T09:11:52.230 に答える