读书人

如何根据外键查询关联表数据

发布时间: 2012-06-28 15:20:04 作者: rapoo

怎么根据外键查询关联表数据?
study表:
id name class
11001 张三 110
11002 李四 110
11101 张三 111
11202 王五 112
exam表:
id subject scores
11001 数学 80
11002 数学 90
11101 数学 67
11201 数学 87
11001 语文 54
11002 语文 90
11101 语文 98
11201 语文 67
我已经将EXAM表的id设为主键,那么外键应该怎么设置,怎么查询这个外键呢?

[解决办法]
LZ你太有才了,exam表中id有重也可以主呀

SQL code
alter table study add constraint pk_study(id) primary keyalter table exam add constraint pk_exam(id,subject) primary keyalter table exam add constraint fk_exam_id foreign key(id)references study(id)
[解决办法]
应该是study表的id为主键吧? 学员ID应该不会重复

然后exam表的id 对应的是study表的id 相当于外键


查询的时候 如果是要查询每个人的姓名学科分数 直接关联就可以了


[解决办法]
列举简单的例子 查询存在分数的学员姓名学科分数

SQL code
create table study (id number(10),name varchar2(20),class number(5));insert into study values (11001,'张三',110);insert into study values (11002,'李四',110);insert into study values (11101,'张三',111);insert into study values (11202,'王五',112);create table exam (id number(10),subject varchar2(20),scores number(5));insert into exam values (11001,'数学',80);insert into exam values (11002,'数学',90);insert into exam values (11101,'数学',67);insert into exam values (11202,'数学',87);insert into exam values (11001,'语文',54);insert into exam values (11002,'语文',90);insert into exam values (11101,'语文',98);insert into exam values (11202,'语文',87);commit;select a.name,b.subject,b.scoresfrom study a,exam b where a.id = b.idorder by a.id      id    name   subject  scores---------------------------------1    11001    张三    数学    802    11001    张三    语文    543    11002    李四    数学    904    11002    李四    语文    905    11101    张三    语文    986    11101    张三    数学    677    11202    王五    语文    878    11202    王五    数学    87 

读书人网 >oracle

热点推荐