gigi11 发表于 2012-4-10 22:49:56

sqlserver查询语句

course表如下显示:
cnocname
01数学
02语文
03 化学

score表如下显示:
sno         sname   cnoscore
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:22

LZ   你这是要查什么呢?给表,什么都没说,睡知道你要查询什么东西。

楠族开心果 发表于 2012-4-11 09:37:36

需要查询什么???

xxl1989 发表于 2012-4-11 10:35:39

SELECT `sno` , `sname` , `cname` , `score`
FROM `score` , `course`
WHERE `score`.`cno` = `course`.`cno`
AND `score` >90

mysql测试通过

freedom_me 发表于 2012-4-11 14:23:07

刚试了试 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:15

回复 5# freedom_me


    楼上的写的很规范呀!:)

freedom_me 发表于 2012-4-11 14:49:37

哈哈,这个就是所谓的"笛卡尔乘积"中符合条件的结果?刚试的时候发现若不加科目的判断会有9条记录,分别是科目表所有记录*分数表大于90的记录。。

shijin880921 发表于 2012-4-14 09:33:32

回复 3# 楠族开心果
版主惭愧啊,咱俩都看错了。他已经给了查询结果。

lichao8896 发表于 2012-4-16 10:58:18

4l正解

ymwang119 发表于 2012-4-16 13:15:54

select sno, sname, cname, score from course,score where course.cno=score.cno and score>90;
顶4楼
页: [1]
查看完整版本: sqlserver查询语句