SQL 多对多查询语句

有3张表,t_class,t_student,t_cst_cs维护class跟student之间的关系(多对多),现在要找有哪些学生,全部课程都有报名。SQL怎么写?字段... 有 3张表 , t_class,t_student,t_cs t_cs 维护 class 跟 student 之间的关系(多对多) ,现在要找 有哪些 学生,全部课程都有报名 。SQL 怎么写? 字段 随意 搞个id 吧 。希望写出个例子。还有 ,找出哪些学生报名多过5 个课程的。
不是实际问题,只是想看看语句 ,字段就 t_class 里面 c_id , t_student 里面 s_id , t_cs 里面 c_id,s_id
展开
 我来答
百度网友1766d622e
2009-09-22 · TA获得超过351个赞
知道小有建树答主
回答量:235
采纳率:0%
帮助的人:271万
展开全部
/*选择全部课程的学生列表:

select B.student,A.num_class

from

(
select count(*) as num_class from class

) A left outer join

(
select count(*) as num_class,student from cs
group by student

) B on A.num_class = B.num_class

/* 报名多过5门课程的学生列表

select A.student,B.num_class as num_class

from

(

select student from student

) A left outer join

(
select count(*) as num_class,student from cs
group by student

) B on A.student = B.student

where num_class >5
休和宜繁星
2019-02-06 · TA获得超过3万个赞
知道小有建树答主
回答量:9641
采纳率:35%
帮助的人:985万
展开全部
select
*
from
(select
id,sum(money)
as
mm
from
a表
group
by
id)
aaa,
(select
id,sum(money)
as
nn
from
b表
group
by
id)
bbb
where
aaa.id=bbb.id
and
aaa.mm=bbb.nn;
-----------------------------
说明:
先用语句,得到aaa,bbb两个临时表,里面是(id,钱的求和);
然后叠加一个查询,从表aaa,表bbb中,用条件,筛选出需要的记录(id相等,钱求和相等);mm,nn是我为了字段查看方便,设置的两个临时字段名。
-----------------------------
如果你是用workbench,语句正确执行要写成一行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
曾煜黎cf787
2009-09-22 · TA获得超过528个赞
知道小有建树答主
回答量:560
采纳率:100%
帮助的人:0
展开全部
字段 随意 搞个id 吧
你的表里面没有字段名字?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式