问题描述
- SQL语句:等值链接,外连接问题
-
编程:按要求写出SQL语句
TableX有三个字段Code,Name,Age,其中Code为主键;
TableY有三个字段Code,Class,Score,其中Code+Class为主键;
两表记录如下:Code Name Age 97001 张三 22 97002 赵四 21 97003 张飞 20 97004 李五 22 Code Class Score 97001 数学 80 97002 计算机 59 97003 计算机 60 97004 数学 55
1.通过等值联接,取出Name,Class,Score,请写出SQL即输出结果 2.通过外联接,取出每个学生的Name,Class,Score,请写SQL输出结果
楼主目前用的数据库是oracle 11g,尽量用Oracle的sql语句吧,如果用其他数据库的也
不介意的,不过回答的朋友请提示一下用的是什么数据库!为了方便一些朋友调试,下面给出创建数据库和添加记录的sql语句吧.
create table TABLEX ( CODE VARCHAR2(10) not null, NAME VARCHAR2(20), AGE NUMBER ); alter table TABLEX add constraint P_TABLEX primary key (CODE); create table TABLEY ( CODE VARCHAR2(10) not null, CLASS VARCHAR2(20) not null, SCORE NUMBER ); alter table TABLEY add constraint P_TABLEY primary key (CODE, CLASS); insert into TABLEX (CODE, NAME, AGE) values ('97001', '张三', 22); insert into TABLEX (CODE, NAME, AGE) values ('97002', '赵四', 21); insert into TABLEX (CODE, NAME, AGE) values ('97003', '张飞', 20); insert into TABLEX (CODE, NAME, AGE) values ('97004', '李五', 22); commit; insert into TABLEY (CODE, CLASS, SCORE) values ('97001', '数学', 80); insert into TABLEY (CODE, CLASS, SCORE) values ('97002', '计算机', 59); insert into TABLEY (CODE, CLASS, SCORE) values ('97003', '计算机', 60); insert into TABLEY (CODE, CLASS, SCORE) values ('97004', '数学', 55); commit;
ps:由于没有多少分,之类只能给2分了,请见谅。
解决方案
1、 SELECT NAME,CLASS,SCORE FROM TABLEX,TABLEY WHERE TABLEX.CODE=TABLEY.CODE
2、SELECT NAME,CLASS,SCORE FROM TABLEX LEFT JION TABLEY ON TABLEX.CODE=TABLEY.CODE
解决方案二:
1、 SELECT NAME,CLASS,SCORE FROM TABLEX,TABLEY WHERE TABLEX.CODE=TABLEY.CODE
2、SELECT NAME,CLASS,SCORE FROM TABLEX LEFT JION TABLEY ON TABLEX.CODE=TABLEY.CODE
时间: 2024-11-01 11:11:59