51Testing软件测试论坛

标题: sqlserver查询语句 [打印本页]

作者: gigi11    时间: 2012-4-10 22:49
标题: sqlserver查询语句
course表如下显示:
cno  cname
01  数学
02  语文
03 化学

score表如下显示:
sno           sname   cno  score
0301        张三      01   99
0301        张三      03   95
0302        李四      01   85
0302        李四      02   76
0302         李四     03   96
查询结果要如下显示
sno       sname   cname   score
0301     张三     数学     99
0301    张三      化学     95
0302    李四      化学     96
sql语句如何写?
作者: shijin880921    时间: 2012-4-11 09:04
LZ   你这是要查什么呢?  给表,什么都没说,睡知道你要查询什么东西。
作者: 楠族开心果    时间: 2012-4-11 09:37
需要查询什么???
作者: xxl1989    时间: 2012-4-11 10:35
SELECT `sno` , `sname` , `cname` , `score`
FROM `score` , `course`
WHERE `score`.`cno` = `course`.`cno`
AND `score` >90

mysql测试通过
作者: freedom_me    时间: 2012-4-11 14:23
刚试了试 4#的sql 还真可以耶.但是不知道怎么从两张表查询,不用关联关键字也行。。。
#select sc.sno,sc.sname,co.cname,sc.score from score as sc inner join course as co where sc.score>90 and sc.cno=co.cno;

CREATE TABLE course
(cno INT NOT NULL,
cname VARCHAR(255))

CREATE TABLE score
(sno INT NOT NULL,
sname VARCHAR(255),
cno INT,
score INT)

INSERT INTO course (cno,cname)
VALUES
(01,'数学'),
(02,'语文'),
(03,'化学')

INSERT INTO score(sno,sname,cno,score)
VALUES
(301,'张三',1,99),
(301,'张三',2,95),
(302,'李四',1,85),
(302,'李四',2,76),
(302,'李四',3,96)
作者: lsekfe    时间: 2012-4-11 14:33
回复 5# freedom_me


    楼上的写的很规范呀!
作者: freedom_me    时间: 2012-4-11 14:49
哈哈,这个就是所谓的"笛卡尔乘积"中符合条件的结果?刚试的时候发现若不加科目的判断会有9条记录,分别是科目表所有记录*分数表大于90的记录。。
作者: shijin880921    时间: 2012-4-14 09:33
回复 3# 楠族开心果
版主惭愧啊,咱俩都看错了。  他已经给了查询结果。
作者: lichao8896    时间: 2012-4-16 10:58
4l正解
作者: ymwang119    时间: 2012-4-16 13:15
select sno, sname, cname, score from course,score where course.cno=score.cno and score>90;
顶4楼




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2