sqlserver三表联查sql语句

selecth.*,q.qxname,j.jdnamefromhouseh,qxq,jdjwhereh.qxid=q.qxidandq.qxid=j.qxidandfid... select h.*,q.qxname,j.jdname from house h,qx q,jd j where h.qxid=q.qxid and q.qxid=j.qxid and fid=12 这个sql语句查询出来是三条结果集,但是我只要一条,请问我该怎么写sql语句,谢谢大家。 展开
 我来答
du瓶邪
推荐于2018-01-14 · TA获得超过2.4万个赞
知道大有可为答主
回答量:1.7万
采纳率:100%
帮助的人:2904万
展开全部
假设学生表叫student,课程表叫class,选课表叫choose
1.三层嵌套的问题
select student.name from student where student.id IN
(select choose.sid from choose where choose.cid NOT IN
(select class.id from class where class.teacher='李明'))
2.一个内连接,一个嵌套
select student.name,avg(choose.score) from
student inner join choose on student.id=choose.sid
where student.id IN
(select choose.sid from choose
where choose.score<'60'
group by choose.sid
having count(choose.sid)>=2)
gruop by student.id
3.一个联合查询,一个嵌套查询
select student.name from student
where student.id IN
(select c1.sid from choose c1 where choose.cid='1'
union
select c2.sid from choose c2 where choose.cid='2'
on c1.sid=c2.sid
)
4.其实就是自连接查询和行列交换的问题:
select student.id,
(case choose.id when '1' then choose.score end) as 1号课成绩,
(case choose.id when '2' then choose.score end) as 2号课成绩,
from student inner join choose on student.id=choose.sid sc1,
student inner join choose on student.id=choose.sid sc2
where sc1.id='1'
and sc2.id='2'
and sc1.score>sc2.score
nietiezheng
2013-10-14 · TA获得超过5536个赞
知道大有可为答主
回答量:3132
采纳率:87%
帮助的人:1217万
展开全部
select Top 1 h.*,q.qxname,j.jdname from house h,qx q,jd j where h.qxid=q.qxid and q.qxid=j.qxid and fid=12
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
badkano
2013-10-14 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144776 获赞数:885365
团长

向TA提问 私信TA
展开全部
最后的j.jdname不一样,你想要哪条啊?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式