2 zhang5476499 zhang5476499 于 2016.03.21 22:02 提问

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分了,请见谅。

2个回答

danielinbiti
danielinbiti   Ds   Rxr 2016.03.21 22:11
已采纳
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
qq_34377825
qq_34377825   2016.03.21 22:12

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
表连接+内连接+等值连接+不等值连接+自然连接+using+外连接+ 左外连接+右外连接+全连接+自连接+交叉连接
表连接 from tableName1 join_type tableName2 【 on (join_condition)】 【join_type tableNameN on join_condition …..】 tableName1:表1 tableName2:表2 join_type :连接类型,有inner join(内连接),outer join(外连接),cros
非等值连接,外连接,自连接,子查询
非等值连接:select empno,ename,sal,grade from emp,salgrade where sal between salgrade.losal and salgrade.hisal;外连接: select * from emp,dept where dept.deptno=emp.deptno(+); 除了部门号相同的外,还加上了emp中没有而dept中包含
SqlServer 等值连接,左连接,右连接
现在有两个表A表和B表:现在我想把A表记录显示在界面,但是显示给用户看到的是userName,而不是op(操作员id).现在需要通过op=userid条件把两个表连接成一个表。在做项目的过程中一直使用等值连接,结果A表只显示op不为null 的记录,这不是我想要的,我希望的结果是不管op 是否为null,都要把记录显示出来,所以就总结一下等值连接,左连接,右连接。A表: B表: 等值连接:返回A
oracle 基本语句练习(四) SQL1999 语法规范 cross join ,等值连接,不等值连接,自连接与外连接
oracle 基本语句练习(四) SQL1999 语法规范 cross join ,等值连接,不等值连接,自连接与外连接
sql查询语句——连接查询
若一个查询同时涉及两个以上的表,则称之为连接查询。 它包括等值连接,非等值连接,自然连接,自身连接,外连接和复合条件连接 一、等值连接,非等值连接,自然连接 表名1.列名1  连接运算符  表名2.列名2 当连接运算符为等号=时,称为等值连接;使用其它运算符时,称为非等值连接。 若在等值连接中把目标列中重复的属性列去掉则为自然连接。 查询每个学生及其选修课程的情况。 se
MySQL中:内连接,外链接,交叉连接的详细讲解(还有sql92语法和99语法对连接语句支持的对比)
这两天把MySQL复习了一下,当时各种连接这部分学得比较迷糊,所以着重复习并总结了一下。 分类 按年代分: 1. sql92标准:仅仅支持内连接 2. sql99标准:支持内连接,外链接(只支持左外和右外,不支持全外),交叉连接 按类型分: 1. 内连接: a .等值连接 b. 非等值连接 c. 自连接 2. 外链接: a.
数据库外连接,自然连接,内连接,条件连接,等值连接关系及详解
Join操作基本分为3大类:外连接(细分为:左连接、右连接、全连接)、自然连接、内连接 Join操作的共性:第一步均为将所有参与操作的表进行了一个笛卡儿积,然后才依据各连接 条件进行记录的筛选 SQL> select * from employees; NAME DEPARTMENT_ID SALARY Getz 10
sql语法:等值联接,左联接,右联接详细使用方法
inner join(等值连接) 只返回两个表中联结字段相等的行 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录   INNER JOIN 语法:   INNER JOIN 连接两个数据表的用法: SELECT * FROM 表1 INNER JOIN 表2
笛卡尔集基本原理,等值连接,不等值连接,外连接,自连接
1 笛卡尔集基本原理 两个表如果笛卡尔集运算 (1)行数是两个表行数相乘的结果 (2)列是两个表合集 案例: 错误查询方式: select count(e.EMPNO) from emp e,dept d; 正确查询方式: select count(e.EMPNO) from emp e,dept d wher
SQL的四种连接查询
今天在做招标系统的时候,想通过招标编号把投标商、评分项、评标专家几个表中相关联的字段查询出来。一般以往的做法是把这些字段放到一张视图里,但现在我只是想看看查询出来的结果是否与测试操作相符,没必要建一张视图,于是就想到了今天我们要说的这几种连接,下面以SQL中的一个小Demo为例进行说明:         SQL数据库中有两张表,一张人员(T_Person)表、一张卡(T_Card)表,人基本上都