2012-03-02 126 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

相关问题