SQL语句,怎么用查询的结果,进行再查询?

怎么用查询到的一个结果进行再查询?
select FriendId from Friends where hostId=10000

我想再用得到的friendid再进行查询(在另一个表中查询) 有办法写到一个SQL语句中吗?
怎么写嵌套? 新手,请教

后面的A是什么意思
最新回答
摘星入眼

2024-11-03 00:19:52

直接把结果集写在 from 后面就可以了。


例图中表格


结果集1


在结果集1中再查询

别逗本宫

2024-11-03 00:18:37

任何一个查询结果都可以当成一张表  再次查询

比如我的sql语句是 

 select * from person where age>10 --大于10岁

我们可以对这个结果再次查询如下

select b.* from (select * from person where age>10) b where b.sex='男' --大于10岁的男性
絮雨羽

2024-11-03 00:29:49

用子查询,
select *
from ‘’你要查询的另一个表‘
where Friendld IN(
select FriendId
from Friends
where hostId=10000
)
或者两个表连接也能解决问题
select ’你要查询的标准的列名称‘
from Friends,’另一个表的名称‘
where Friends.hostId=10000, Friends.hostld='另一个表的名称'.hostld

还有我提醒下你,你如果真的想学数据库,还是买一u本好书吧,转名将SQl的书。要不然这样问下去,你会问的无休止的。到头来浪费时间还学不好。
如果你只是玩玩,我建议你还是不要学数据库了,数据库很复杂。你临时要做东西的话找个人替你做。
落寞式孤独

2024-11-03 00:29:18

可以有多种方式处理:

我这里举个例子:
比如你的另外一张表, 叫做 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.更加复杂点的,就用 游标处理,不过那个是存储过程里面干的事情了。
接住路过的风

2024-11-03 00:02:03

比如要查找 student表中 stuid=(select FriendId from Friends where hostId=10000 )
select * from student where stuid=(select FriendId from Friends where hostId=10000)