2016-05-14 15 views
0

次の2つのテーブルに左結合を行い、別のテーブルとリンクしたいと考えています。2つのテーブルを結合し、3番目のテーブルをリンクする

たとえば、 私はと呼ばれるテーブルが学生

SID (pk) 
fname 
lname 

割り当てテーブル

aid (pk) 
dur 
SID (fk) 
pid (fk) 

教授テーブル

pid (pk) 
pname 

私はからfnameを取る持っています第1テーブルおよびpid第2テーブルleft joinこれらに対応するディスプレイpnameからprofessor table

だから私は、テーブルには、私はこのようなコードを書かれているが、それは私がやりたい

select students.fname, professor.pname 
from student 

LEFT JOIN professor ON professor.pid = assignment.pid 

が動作していない。この後の

Fname Pname 

Raju Jack 
RAm Null 
jim john 

おかげ

に見えるようにしたいです私はfnameとpidを取得するので、代わりにpnameを取得し、fnameとpnameを表示するためにpidを使いたい

+0

あなたはどんな問題を抱えていますか?私たちはあなたのためにそれを書くつもりはありませんが、私たちはあなたのコードを修正するのを手伝います。私は残っている – Barmar

+0

は私が
fnameのPID
ラジュ012
ラムヌル
ジム・025
ので、私は今のpidを使用し、教授テーブルにPNAMEを見つけたいとだけ持っているので、今の学生と割り当てテーブル に参加しましたfnameとpnameを表示する – user17422

+1

LEFT JOIN教授をprofessor.pid = assignment.pidに追加するだけです。 – Barmar

答えて

0

このように出力したい場合は、1つのことを実行できます。 左結合を使用する代わりに、単純に結合を使用できます。 私はそれをチェックしたので、このコードを試してみてください。

select s.fname, p.p_name 
from students s 
join assignment a on s.s_id = a.s_id 
join professor p on a.p_id = p.p_id 

希望の結果が得られます。

+0

期待される結果( 'RAm Null')を見ると、OPにLEFT JOINが必要であることがわかります。 –

+0

私はカラムaid、sid、pnameを持つ代入テーブルと教授テーブルを作成し、assignment.pid = professor.pidとして結合することを望んでいました。 後でビューに学生テーブルの左結合を使用します。 あなたはどう思いますか?あなたの考えにチャイムしてください.... ありがとう – user17422

0

私は、aid、sid、pnameカラムを持つ代入テーブルと教授テーブルのビューを作成し、それらをassign.pid = professor.pidとして結合したいと考えていました。その後

私は左の使用ビューに学生テーブルのジョインでしょう....

皆さんはどう思いますか?あなたの考えでチャイムしてください....
ありがとう

関連する問題