Oracle
幫助加入 3 個表 Oracle XE 11g
我正在嘗試從下表中返回名字、姓氏、主題和標記:
SQL> desc 學生; 名稱空?類型 ------------------------ -------- ------------------- STUDENT_NO VARCHAR2(10) 姓氏 VARCHAR2(20) 名字 VARCHAR2(20)
SQL> 描述模組; 名稱空?類型 ------------------------ -------- ------------------- MODULE_CODE VARCHAR2(8) MODULE_NAME VARCHAR2(20)
SQL> desc 標記; 名稱空?類型 ------------------------ -------- ------------------- STUDENT_NO VARCHAR2(10) MODULE_CODE VARCHAR2(8) 標記號碼(38)
我在 SQL*Plus 中嘗試了以下 SQL 查詢
SELECT DISTINCT FORENAME AS “First Name”,SURNAME,MODULE_NAME AS “Subject”,MARK 來自學生、模組、分數;
但這會顯示重複的條目。
以下根本行不通。
選擇 st.FORENAME 作為“名字”,st.SURNAME,mod.MODULE_NAME 作為“主題” FROM STUDENTS st JOIN MODULES mod ON (st.STUDENT_NO = mod.STUDENT_NO);
我錯過了什麼嗎?也許是一個子查詢?請幫助,數據庫總菜鳥。
您使用的第一個查詢返回這三個表中行的笛卡爾積。詳情:加入
以下是連接三個表的簡單範例。
SQL> select * from student; STUDENT_ID FIRSTNAME LASTNAME ---------- -------------------- -------------------- 1 Will Smith SQL> select * from module; MODULE_ID NAME ---------- -------------------- 1 Computing SQL> select * from marks; STUDENT_ID MODULE_ID MARK ---------- ---------- ---------- 1 1 40 SQL> SQL> select s.firstname, s.lastname, mo.name Module_Name, m.mark from student s join marks m on (s.student_id=m.student_id) join module mo on (m.module_id=mo.module_id); FIRSTNAME LASTNAME MODULE_NAME MARK ------------- ------------ --------------- -------- Will Smith Computing 40 SQL>