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 展开
不是实际问题,只是想看看语句 ,字段就 t_class 里面 c_id , t_student 里面 s_id , t_cs 里面 c_id,s_id 展开
3个回答
展开全部
/*选择全部课程的学生列表:
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
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
展开全部
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,语句正确执行要写成一行。
*
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,语句正确执行要写成一行。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
字段 随意 搞个id 吧
你的表里面没有字段名字?
你的表里面没有字段名字?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询