2012-03-02 167 views
0

我試圖找到一種方法,可以列出邁阿密學生所採用的所有考試。首先是表格和數據集。這是用戶表:將一列從列表中列出到另一個列的列

CREATE TABLE users(
uno NUMBER(5), 
email VARCHAR2(64), 
password VARCHAR2(64), 
fname VARCHAR2 (64) NOT NULL, 
lname VARCHAR2 (64) NOT NULL, 
address1 VARCHAR2 (64), 
address2 VARCHAR2(64), 
city VARCHAR2(64), 
state VARCHAR2(64), 
zip NUMBER(5), 
CONSTRAINT users_pk PRIMARY KEY(uno)); 

用戶數據集:

(1,'[email protected]','','Mike','Goose','','','Miami','FL','32323') 
(2,'[email protected]','','Cathy','Vincent','','','Atlanta','GA','91901') 
(3,'[email protected]','','Steve','McGarth','','','Miami','FL','345321') 

userResponse表:

CREATE TABLE userResponse(
uno NUMBER (5), 
eno NUMBER (5), 
qno NUMBER(5), 
response CHAR (1), 
CONSTRAINT userResponse_pk PRIMARY KEY(uno, eno, qno), 
FOREIGN KEY(uno, eno) REFERENCES enrolls(uno, eno), 
FOREIGN KEY(eno, qno) REFERENCES question(eno, qno) 
); 

userResponse數據集:

(1,1,1,'A') 
(1,1,2,'B') 
(1,1,3,'A') 
(1,1,4,'B') 
(1,1,5,'N') 
(1,1,6,'C') 
(1,1,7,'D') 
(1,1,8,'A') 


(2,1,1,'B') 
(2,1,2,'B') 
(2,1,3,'E') 
(2,1,4,'C') 
(2,1,5,'D') 
(2,1,6,'A') 
(2,1,7,'C') 
(2,1,8,'B') 


(3,1,1,'C') 
(3,1,2,'C') 
(3,1,3,'D') 
(3,1,4,'D') 
(3,1,5,'A') 
(3,1,6,'A') 

我知道,「UNO 「必須有某種關係與「城市」(爲住在邁阿密的人)的IP。我有點困在這裏,因爲我不知道如何將兩張桌子拼在一起。如何從users表(城市)中將列信息檢索到userResponse表(uno)中的列,以及如何列出它們全部?請告訴我。謝謝。

編輯1: 我在這裏犯了一個錯誤。這實際上是所有學生都參加的考試。我爲此道歉。

回答

4

試試這個:

1)如果你想在所有的效應初探信息

SELECT * 
    FROM userResponses 
WHERE uno IN 
    (
     SELECT uno 
      FROM user 
     WHERE city = 'MIAMI' 
    ) 

2)如果你只是想考試編號:

SELECT DISTINCT eno 
    FROM userResponses 
WHERE uno IN 
    (
     SELECT uno 
      FROM user 
     WHERE city = 'MIAMI' 
    ) 
+0

哦,是我不好。這實際上是所有學生都參加的考試。我爲此道歉。我得到了混合了哈哈。 – ZetaX9 2012-03-02 04:17:54

+0

檢查更新的答案.... – Chandu 2012-03-02 04:21:20

+0

啊,我現在明白了。謝謝您的幫助!對此,我真的非常感激! :) – ZetaX9 2012-03-02 04:24:02

相關問題