SQL语句,怎么用查询的结果,进行再查询?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL语句,怎么用查询的结果,进行再查询?相关的知识,希望对你有一定的参考价值。
怎么用查询到的一个结果进行再查询?
select FriendId from Friends where hostId=10000
我想再用得到的friendid再进行查询(在另一个表中查询) 有办法写到一个SQL语句中吗?
怎么写嵌套? 新手,请教
后面的A是什么意思
直接把结果集写在 from 后面就可以了。
例图中表格
结果集1
在结果集1中再查询
参考技术A任何一个查询结果都可以当成一张表 再次查询
比如我的sql语句是
select * from person where age>10 --大于10岁我们可以对这个结果再次查询如下
select b.* from (select * from person where age>10) b where b.sex='男' --大于10岁的男性 参考技术B 用子查询,select *
from ‘’你要查询的另一个表‘
where Friendld IN(
select FriendId
from Friends
where hostId=10000
)
或者两个表连接也能解决问题
select ’你要查询的标准的列名称‘
from Friends,’另一个表的名称‘
where Friends.hostId=10000, Friends.hostld='另一个表的名称'.hostld
还有我提醒下你,你如果真的想学数据库,还是买一u本好书吧,转名将SQl的书。要不然这样问下去,你会问的无休止的。到头来浪费时间还学不好。
如果你只是玩玩,我建议你还是不要学数据库了,数据库很复杂。你临时要做东西的话找个人替你做。 参考技术C 可以有多种方式处理:
我这里举个例子:
比如你的另外一张表, 叫做 Users, 有个 UserID 是要检索的关联条件。
1.使用子查询 IN 的方式
SELECT *
FROM Users
WHERE userID IN (select FriendId from Friends where hostId=10000)
2.修改原有SQL为表关联的方式.
SELECT
Users.*
FROM
Users , Friends
WHERE
Users.userID = Friends.FriendId
AND Friends.hostId=10000
3.更加复杂点的,就用 游标处理,不过那个是存储过程里面干的事情了。 参考技术D 比如要查找 student表中 stuid=(select FriendId from Friends where hostId=10000 )
select * from student where stuid=(select FriendId from Friends where hostId=10000)
SQL语句对返回的结果集里的字段再进行条件查询,在一个结果集显示
这个sql可以通过将初始查询结果集用括号括起来当作一个子查询(也可以称之为虚拟表),然后再对其实施进一步筛选从而获得另一个结果集的办法予以实现。例如列出各科平均分在80到90分的同学姓名和各科平均分
select stu.name,t.平均分 from stu,
(select sid,avg(score) as 平均分 from scores group by sid)t
where stu.sid=t.sid and t.平均分 between 80 and 90;
事实上Sql可以通过这种方法实现多重子查询筛选、嵌套和连接非常方便。 参考技术A 这个sql可以通过将初始查询结果集用括号括起来当作一个子查询(也可以称之为虚拟表),然后再对其实施进一步筛选从而获得另一个结果集的办法予以实现。
例如列出各科平均分在80到90分的同学姓名和各科平均分
select stu.name,t.平均分 from stu,
(select sid,avg(score) as 平均分 from scores group by sid)t
where stu.sid=t.sid and t.平均分 between 80 and 90;
事实上Sql可以通过这种方法实现多重子查询筛选、嵌套和连接非常方便。
以上是关于SQL语句,怎么用查询的结果,进行再查询?的主要内容,如果未能解决你的问题,请参考以下文章
SQL server中用一段语句得到的查询结果 怎么当成一张新表进行更新操作