当前位置:首页 » 编程语言 » 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 字段='?' 表示把查询的结果合并显示,上面那个有些问题,就试下这个吧。这个是要求两个表的结构式一样的 或者是要查询的字段结构是一样的就可以

热点内容
ipad设置文件夹密码 发布:2024-12-24 20:07:52 浏览:533
幻塔h201避难所密码锁是多少 发布:2024-12-24 20:01:53 浏览:853
电脑配置怎么看硬盘 发布:2024-12-24 20:00:22 浏览:866
青海云服务器租用公司 发布:2024-12-24 19:59:42 浏览:819
数据库记录排序 发布:2024-12-24 19:50:06 浏览:600
byte转stringpython 发布:2024-12-24 19:48:30 浏览:668
战地一配置低显示器分辨率怎么调 发布:2024-12-24 19:48:19 浏览:428
如何判断脚本是否开了 发布:2024-12-24 19:47:32 浏览:655
安卓怎么退出纯净模式 发布:2024-12-24 19:31:37 浏览:309
sql存储过程结果输出 发布:2024-12-24 19:10:52 浏览:555