当前位置:首页 » 编程语言 » sql语句关联查询

sql语句关联查询

发布时间: 2022-02-02 05:19:08

sql联合查询语句

A表字段stuid,stuname
B表字段bid,stuid,score,coursename,status

CREATE TABLE A#(
stuid INT,
stuname VARCHAR(10)
);

CREATE TABLE B# (
bid INT,
stuid INT,
score INT,
coursename VARCHAR(10),
status INT,
);

INSERT INTO A#
SELECT 1, '张三' UNION ALL
SELECT 2, '李四' UNION ALL
SELECT 3, '王五' UNION ALL
SELECT 4, '赵六'
;

INSERT INTO B#
SELECT 1, 1, 100, '语文', 0 UNION ALL
SELECT 2, 1, 99, '数学', 1 UNION ALL
SELECT 3, 2, 88, '语文', 0 UNION ALL
SELECT 4, 2, 88, '数学', 1 UNION ALL
SELECT 5, 3, 77, '语文', 0 UNION ALL
SELECT 6, 3, 77, '数学', 0 UNION ALL
SELECT 5, 4, 66, '语文', 1 UNION ALL
SELECT 6, 4, 66, '数学', 1
;

SELECT
A#.stuid,
B#.score,
B#.coursename,
B#.status
FROM
A# JOIN B#
ON (A#.stuid = B#.stuid AND B#.status = 1)
WHERE
NOT EXISTS (
SELECT
1
FROM
B# sub
WHERE
A#.stuid = sub.stuid
AND sub.status = 1
AND sub.score > B#.score
)

stuid score coursename status
----------- ----------- ---------- -----------
1 99 数学 1
2 88 数学 1
4 66 语文 1
4 66 数学 1

(4 行受影响)

注:
stuid = 3的,2门课程的 status 都为0,因此无数据显示。
stuid = 4 的,2门课程都等于 max(score), 因此显示出2行数据。

⑵ 一个sql语句联合查询的问题

select top 12 * from artinfo where classpath like (select top 1 belonglist from artclass where charindex('>5>',belonglist)>0 order by id)

⑶ sql语句如何将三个表进行关联查询

b里面应该是没有id的,应该是b里面有个列与a相关另一个列与c相关
a与c没关系,这样才会出现3表关联的需求

⑷ SQL语句-关联查询

--试试下面的语句试试:
select aa.* from (select count(a.autonumb),autonumb,sum(a.DetailPrice) as Moneya from Bookdatail a group by a.autonumb) aa left join BookCollect bb on aa.autonumb = bb.autonumb where isnull(aa.Moneya,0)<>isnull(bb.CollectPrice,0)

⑸ sql联合查询语句(两张表)

sql联合查询语句(两张表)是:

select A.ID,A.VALUE,A.TYPE,A.NAME,B.KEY,B.ID,B.VALUE,B.NAME
min(VALUE),max(VALUE) from A left join B on A.ID = B.ID
where B.NAME="你输入的名字"
and B.VALUE > (select min(VALUE) from B where NAME="你输入的名字"))
and B.VALUE < (select min(VALUE) from B where NAME="你输入的名字"));

⑹ SQL语句如何写,能对一个表进行关联查找

select a.typename 父类,b.typename 子类 from ball_newstype a, ball_newstype b where a.id=b.parentid

⑺ sql语言两表关联查询语句

通过班级关联:
select
count(学号) as 人数
,a.班级
,b.班主任
from a表 a
inner join b表 b on a.班级 = b.班级
group by a.班级,b.班主任
;

⑻ 两表关联查询SQL语句的,要怎么写

1、首先打开数据库客户端Navicat Premium 15工具,点击并打开一个数据库连接。

⑼ sql联合查询语句

时间长是应该是因为你没有建立索引。而且语句没有必要写的那么复杂。
下面的代码即可:

insert into c select (a.姓名) 姓名,(SUBSTRING(b.登记时间,7,2))rq,(SUBSTRING(b.登记时间,9,2)+':'+SUBSTRING(b.登记时间,11,2)) 时间,'01' from b,a where b.编号=a.编号

⑽ SQL语句 联合查询

是二条结果 呀,因为你的查询条件是a.aid=b.aid,取的是AID为1的记录在b表中aid 都是1

热点内容
阿瓦隆九个人怎么配置 发布:2024-05-20 02:57:47 浏览:757
sqlnotinexcept 发布:2024-05-20 02:53:10 浏览:341
激光切割编程教程难吗 发布:2024-05-20 02:49:57 浏览:925
sqlbool 发布:2024-05-20 02:49:57 浏览:721
如何把文件压缩到最小 发布:2024-05-20 02:25:03 浏览:452
javash脚本文件 发布:2024-05-20 01:43:11 浏览:830
安卓手机如何登陆刺激战场国际服 发布:2024-05-20 01:29:02 浏览:861
服务器核库怎么找 发布:2024-05-20 01:28:14 浏览:375
盐存储水分 发布:2024-05-20 01:09:03 浏览:810
中国移动用什么服务密码 发布:2024-05-20 00:52:10 浏览:696