Sql 要从多个表中选择的存储过程

Sql 要从多个表中选择的存储过程,sql,database,sql-server-2008,stored-procedures,Sql,Database,Sql Server 2008,Stored Procedures,我创建了一个接受参数的存储过程 ALTER procedure [dbo].[myprocedure](@myName char(20)) as select param1 from table1 where name = @myName 现在这是可行的,但当我尝试从其他表中选择参数时,它不起作用。在第一次选择之后,我尝试这样做 (Select param2 table2) 但我明白了 MS 512,16级,状态1,程序候选,第3行 子查询返回了多个值。当子查询在=、!=、

我创建了一个接受参数的存储过程

ALTER procedure [dbo].[myprocedure](@myName char(20))
as
   select param1
   from table1
   where name = @myName
现在这是可行的,但当我尝试从其他表中选择参数时,它不起作用。在第一次选择之后,我尝试这样做

(Select param2 table2)
但我明白了

MS 512,16级,状态1,程序候选,第3行
子查询返回了多个值。当子查询在=、!=、=或者当子查询用作表达式时


有人知道如何使用select从多个表中获取值吗?谢谢

在运算符中使用
,而不是在Where子句之后使用

ALTER procedure [dbo].[myprocedure](@myName char(20))
as

select param1
from table1
where name = @myName

---
select param1
from table1
where name IN (Select param2 from table2)
编辑

请注意,
UNION
将在合并表1和表2中的结果集后删除重复的值


要保留重复的值,使用
UNION ALL

是的,但是如何将名称与@mynames匹配?是否要将表1中的name列与表2中的param2列以及paramaeter@myName匹配?我要将表1中的name column与@myName匹配,并从表2中返回param2?这是否意味着您需要表1中的Param1和表2中的param2?在这种情况下,如何使用Union all
select param1
from table1
where name = @myName
union
Select param2
from table2