2015-03-02 45 views
0

在我的數據庫中有三個表。我想弄清楚如何列出學校名稱,班級名稱和教師姓名。按學校名稱內的班級名稱對記錄進行排序。我有一個查詢,但它不工作。我如何在學校名稱內列出學校名稱,班級名稱,教師姓名和班級名稱?使用多個內部聯接和排序結果

SELECT c.class_name FROM class c INNER JOIN teacher t WHERE t.teacher_id = c.teacher_id INNER JOIN school s WHERE t.school_id = s.school_id; 

TABLES

SQL> select * from class; 

    CLASS_ID CLASS_NAME   TEACHER_ID MAX_SEATS_AVAILABLE 
---------- ------------------- ---------- ------------------- 
     1 Intro to ALGEBRA   11     12 
     2 Basic CALCULUS    2     10 
     3 ABC and 123     1     15 
     4 Sharing 101     8     10 
     5 Good Talk, Bad Talk   9     20 
     6 Nap Time      1     21 
     7 WRITing 101     5     10 
     8 Finger Painting    9     14 
     9 Physics 230     2     20 
     10 Gym       5     25 

10 rows selected. 

SQL> select * from teacher; 

TEACHER_ID FIRST_NAME  LAST_NAME  T HOME_ROOM_NUM PHONE_NUM START_DAT HO SCHOOL_ID 
---------- ---------------- ---------------- - ------------- ---------- --------- -- ---------- 
     1 FRanK   JOHNSON   k 10C      22-OCT-97 In  11090 
     2 LISA    JONES   h 11Bc   317-587-90 19-JAN-15 iN  123134 
                  87 

     3 Jeff    Dafferty   C W8CZ      12-DEC-96 OH  11546 
     4 Frank   MARTIN   g 12aA   212-098-98 19-JAN-15 IN  11090 
                  76 

     5 John    Smith   H 34C      10-OCT-93 In  123134 
     6 John    Smith   G 34C      10-OCT-93 in  11090 
     7 Lisa    Jones   G 11E   317-587-90 19-JAN-15 IN  123134 
                  87 

     8 Trevor   Horse   k x      19-JAN-15 Oh  11090 
     9 Gregor   Ivan    K 12A   317-987-09 10-NOV-96 KY  11090 
                  87 

     10 Gregor   Ivan    g 12A   317-987-09 10-NOV-96 Ky  11090 
                  87 

     11 Pat    Francis   H 1z1a   123-317-09 19-JAN-15 Il  11546 
                  12 

     12 Brad    Smith   G 13A      18-NOV-94 IN  11546 

12 rows selected. 

SQL> select * from school; 

SCHOOL_ID SCHOOL_NAME     SCHOOL_TYPE 
---------- ----------------------------- ------------ 
    11546 Ivy Tech College    COLLegE 
    11090 LAWRENCE Central Grade School GRADE SCHOOL 
    11111 Lawrence NORTH High School HIGH SCHooL 
    19283 Howe High SCHOOL    High SchooL 
    123134 Lawrence Central High School HIGH SCHOOL 
     192 Little Big Horn Grade School GRADE SCHOOL 
+0

什麼是數據庫? MS SQL或Oracle或MySQL?你從這個預期的結果是什麼?你可以請張貼也。 – 2015-03-02 06:38:05

+0

您的查詢是否運行? – 2015-03-02 06:38:24

+0

@SelvaTS oracle sql,ok會更新 – techAddict82 2015-03-02 06:39:35

回答

1

可以使用join得到你想要的東西。這將爲所有學校提供老師和課程。

SELECT DISTINCT 
    sc.SCHOOL_NAME, 
    teach.FIRST_NAME, 
    teach.LAST_NAME , 
    cs.CLASS_NAME 
FROM 
    school sc JOIN teacher teach 
     ON sc.SCHOOL_ID = teach.SCHOOL_ID 
    JOIN class cs ON cs.TEACHER_ID = teach.TEACHER_ID 
ORDER BY 
    sc.SCHOOL_NAME,cs.CLASS_NAME 
+0

好吧,這是我需要的。我不確定如何構建'JOINS'。 – techAddict82 2015-03-02 06:48:17

0
SELECT t.FIRST_NAME +' '+t.LAST_NAME, s.SCHOOL_NAME, c.class_name 
FROM class c 
INNER JOIN teacher t 
ON t.teacher_id = c.teacher_id 
INNER JOIN school s 
ON t.school_id = s.school_id 
ORDER BY s.SCHOOL_NAME,c.CLASS_NAME