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