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

sql关联查询

发布时间: 2022-01-10 15:32:08

A. sql 两个表的数据进行关联查询

查询2个表然后对比唯一的主键,对比表名sheet1,sheet2
SELECT * FROM sheet1 LEFT JOIN sheet2 ON sheet1.`列名` = sheet2.`列名`

B. 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行数据。

C. 关联 SQL 查询语句怎么写

select 名字 from a,b
where a.id = b.aid
and b.名字 = "bob"

你说的太乱了 给你个类似形式,自己补充吧
a.id = b.aid就是把a,b两个表相同的列关联起来,然后再找b表中名字为bob的 也就是and后面的条件

D. sql多表关联查询能用哪几种方法写

楼主使用的是子查询,子查询局限性较大,只能显示第一张表的字段。你可以这样写
SELECT * FROM biz.coursecomment a,so.sodetail b,so.somaster c

where a.sono=b.sono and b.sono=c.sono and c.TeacherNO='100199' and b.IsStudentComment='1' AND IsTeacherComment='1' and a.ToCustomerNO='100199'

这样写就避免了各种的子查询。当然,你还可以写成join的形式。join的层次更分明,代码如下:
SELECT * FROM biz.coursecomment a
join so.sodetail b
on a.sono=b.sono
join so.somaster c
on c.sono=b.sono
where c.TeacherNO='100199' and b.IsStudentComment='1' AND IsTeacherComment='1' and a.ToCustomerNO='100199'

如果不懂,可以追问

E. sql 关联查询!

先建立关系,TI和T2的ID连起来,然后建立查询,select T1.ID, T1.NAME,T2.JYS from T1, T2

F. sql同表联合查询

createTABLEtest(idint,atimedatetime,aaaint,btimedatetime,bbbint)
INSERTINTOdbo.test
(id,
atime,
aaa,
btime,
bbb
)

select
1,'2013-07-01',2,'2013-07-02',3
UNIONALL
SELECT
2,'2013-07-02',5,'2013-07-03',7
UNIONALL
SELECT
3,'2013-07-01',4,'2013-07-02',5
UNIONALL
SELECT
4,'2013-07-02',3,'2013-07-03',6

--SELECT*FROMtest
SELECTa.[time],SUM(aaa),SUM(bbb)
FROM
(
SELECTatimeAS[time],aaa,0ASbbb
FROMdbo.test
UNIONALL
SELECTbtimeAS[time],0ASaaa,bbb
FROMdbo.test
)a
GROUPBYa.[time]
-----结果
2013-07-0100:00:00.000 6 0
2013-07-0200:00:00.000 8 8
2013-07-0300:00:00.000 0 13

1、你的7.2号的bbb结果估计写错了,是8

2、因不知道你具体数据类型和具体库,我使用的是datetime类型,类型如果有误,你可以自己修改

G. 如何sql三张表关联查询

三张表关联查询
使用场景:A\B\C 三张表,现在要查询并展示A表和C表中的某些字段,但是A、C两表没有相同字段,无法关联,此时有B表恰好有两个字段,一个字段和A表一个字段相同,一个字段和C表一个字段相同,我们称B表为“中间表”,因此通过B表把A、C表关联起来
SELECT A1,A2,C1,C2 --展示A表中的A1\A2字段和C表中的C1\C2
FROM B --中间表
INNER JOIN A ON A.A1 = B.B1 --A表中的与B表中相同的字段
INNER JOIN C ON C.C1 = B.B1 --C表中的与B表中相同的字段
where xxxxx ---条件你自己按照需求来加,没有条件就不写where了

H. sql多表关联查询

用SELECT对多表关联进行查询。

I. 如何使用SQL两个表关联查询,如下图

SELECTa.*,isnull(b.N,'0')N
FROM[tableA]aleftjointableBb
ona.id=b.id
union
SELECTa.id,a.name,isnull(b.M,'0')M,a.N
FROM[tableB]aleftjointableAb
ona.id=b.id

J. SQL两个数据库关联查询

select * from [数据库1].dbo.[表1] where 字段='?' union
select * from [数据库2].dbo.[表2] where 字段='?' 表示把查询的结果合并显示,上面那个有些问题,就试下这个吧。这个是要求两个表的结构式一样的 或者是要查询的字段结构是一样的就可以

热点内容
3k我的使命脚本 发布:2024-09-20 18:11:43 浏览:689
建设银行密码怎么设置 发布:2024-09-20 18:11:04 浏览:95
聚合脚本平台 发布:2024-09-20 17:51:55 浏览:180
访问拦截怎么解除安卓 发布:2024-09-20 17:28:48 浏览:275
萝卜干存储 发布:2024-09-20 17:21:37 浏览:716
苹果手机如何迁移软件到安卓手机 发布:2024-09-20 17:21:34 浏览:692
查看服务器ip限制 发布:2024-09-20 16:56:27 浏览:389
p搜系统只缓存1页为什么 发布:2024-09-20 16:48:51 浏览:841
上网的账号和密码是什么东西 发布:2024-09-20 16:31:31 浏览:613
安卓手机王者荣耀如何调超高视距 发布:2024-09-20 16:31:30 浏览:429