多重查询

awjx 2003-08-18 04:16:26

有三个表 如下
table1(id,name)
table2(id,group)
table3(memid,address)
现通过table1的参数@id 来查询table3 的memid
该怎样写
急!!!

...全文
50 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
SE1 2003-08-18
  • 打赏
  • 举报
回复
table1中的id不唯一?这样的话就可以解释了。
SE1 2003-08-18
  • 打赏
  • 举报
回复
应该是:
SELECT memID
FROM table3
WHERE memid in(select id
from table2
where id in (select id
from table1
where(id=@id)
)
)
在in表达式里不能使用slect * from ...,而是要明确指明字段。

不过,好像这个查询不对,看上去似乎有些逻辑混乱,也不知道你的业务逻辑是怎样的......
awjx 2003-08-18
  • 打赏
  • 举报
回复
table3 的memid与table1的id不是一回事
liuyun2003 2003-08-18
  • 打赏
  • 举报
回复
看不明白
CrazyFor 2003-08-18
  • 打赏
  • 举报
回复
select * from table3 where memid=@id
awjx 2003-08-18
  • 打赏
  • 举报
回复
我是这样写的,但不对 (关系应该可以从下面看出来)

CREATE PROCEDURE sel
(
@id int)
AS
BEGIN
SELECT
memID
FROM table3
WHERE memid in(select * from table2
where id in (select * from table1
where(id=@id)))
END
go

错误是这样的

服务器: 消息 116,级别 16,状态 1,过程 SEL,行 12
当没有用 EXISTS 引入子查询时,在选择列表中只能指定一个表达式。
服务器: 消息 116,级别 16,状态 1,过程 SEL,行 12
当没有用 EXISTS 引入子查询时,在选择列表中只能指定一个表达式。
txlicenhe 2003-08-18
  • 打赏
  • 举报
回复
没交代清楚。
Select * from table3 where memid in (select id from table1) ???
愉快的登山者 2003-08-18
  • 打赏
  • 举报
回复
table1的id与table3 的memid是什么关系?

select memid from table3 where memid = @id

22,206

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧