2017-03-29 8 views
0

私は私の本を読んでいる間、私は練習問題に執着しています。Oracle SQL Practice

インストラクターと同じ郵便番号で生徒を教えるインストラクターの郵便番号、名前、電話番号を記載してください。

そして、これは予想される結果である: FIRST_NAME LAST_NAMEのPHONE


ニーナSchorin 2125551212
トッド・スマイス2125551212
(2行)

これは私がこれまで持っていると私のコードです正しい結果ではない2つの結果を返します。どんな助けでも大歓迎です。 私が働いているテーブルとクエリのImageを追加しました。

SELECT DISTINCT S.first_name, S.last_name, S.PHONE 
    FROM STUDENT S, ENROLLMENT E, section SE, INSTRUCTOR I 
    WHERE S.STUDENT_ID = E.STUDENT_ID 
    AND E.SECTION_ID = SE.SECTION_ID 
    AND SE.INSTRUCTOR_ID = I.INSTRUCTOR_ID 
    AND S.ZIP = I.ZIP 
    GROUP BY S.FIRST_NAME, S.LAST_NAME, S.PHONE 
    MINUS 
    SELECT DISTINCT I.first_name, I.last_name, I.PHONE 
    FROM STUDENT S, ENROLLMENT E, section SE, INSTRUCTOR I 
    WHERE S.STUDENT_ID = E.STUDENT_ID 
    AND E.SECTION_ID = SE.SECTION_ID 
    AND SE.INSTRUCTOR_ID = I.INSTRUCTOR_ID 
    AND S.ZIP = I.ZIP 
    GROUP BY I.FIRST_NAME, I.LAST_NAME, I.PHONE; 

TABLES AND RESULTS

+1

「FROM」句でカンマ区切りの表の代わりにJOINSを使用する方法をまだ学習していないので、間違った本を勉強していると思います。 – cha

+0

この本はAlice Rischert、Prentice Hall /ピアソン教育第4版。私はそれが問題である本ではないと確信している、それは私のそれを理解している可能性が高いです:) –

+0

[スクリーンショットではない]フォーマットされたテキストとしてデータを投稿してください(http://meta.stackoverflow.com/questions/285551/why -may-i-not-upload-images-of-code-on-so-asking-a-question/285557#285557) – Aleksej

答えて

0

ここでは、これはあなたがより良い方法を理解してあげる、あなたのためのリンクです:私はそれを置く

select INSTRUCTOR.FIRST_NAME, INSTRUCTOR.LAST_NAME, INSTRUCTOR.PHONE, STUDENT.FIRST_NAME, STUDENT.LAST_NAME 
from INSTRUCTOR inner join STUDENT on INSTRUCTOR.ZIP = STUDENT.ZIP 

SQL INNER JOIN

そして、ここでは、コードすべきものです学生のファーストネームと姓はですので、そのインストラクターが誰に教えるのかが分かります。