如何在一个mysql存储过程中加入两个表

如何在一个mysql存储过程中加入两个表

问题描述:

我写了一个存储过程来执行搜索。在下面的存储过程中,我在参数hpw1, aty1, ind1, rol1, tz1和输出参数id, hpw, aty, ind, rol, tz和我的代码如下所示。如何在一个mysql存储过程中加入两个表

当我调用这个存储过程,我得到的结果是由多于一个排的,我不知道我在此代码越来越错了,所以请人提出这个问题的解决方案。

存储过程:

DELIMITER $$ 

CREATE DEFINER=`Compuser`@`%` PROCEDURE `Equity_Search`(IN hpw1 INT,IN aty1 INT, IN ind1 INT, IN rol1 INT, IN tz1 INT, 
OUT id INT, OUT hpw INT , OUT aty INT , OUT ind INT, OUT rol INT, OUT tz INT 
) 
BEGIN 
select e.usr_workfor_equity_usr_id, 
     e.usr_workfor_equity_hours_per_week, 
     e.usr_workfor_equity_assignment_type_id, 
     i.my_usr_workfor_industry_id, 
     r.my_usr_workfor_role_id, 
     e.usr_workfor_equity_timezone_id into id,hpw,aty,ind,rol,tz 
from my_usr_workfor_equity e 
inner join my_usr_workfor_roles r on e.usr_workfor_equity_usr_id = r. my_usr_workfor_usr_id 
inner join my_usr_workfor_industries i on e.usr_workfor_equity_usr_id = i. my_usr_workfor_usr_id 
where e.usr_workfor_equity_hours_per_week = hpw1hpw1 or 
e.usr_workfor_equity_assignment_type_id = aty1 or 
i.my_usr_workfor_industry_id = ind1 or 
r.my_usr_workfor_role_id = rol1 or 
e.usr_workfor_equity_timezone_id = tz1 ; 

END 

调用存储过程:

call Equity_Search(6,0,0,0,0,@id,@hpw,@aty,@ind,@rol,@tz); 

错误:

ErrorCode: 1172 result consisted of more than one row.

一些身体请建议我这个错误,我要去哪里的解决方案代码中出现错误?

感谢

+0

你是怎么做到这一点已经失败你有想过为什么? –

+1

请仔细阅读[** FAQ **](http://stackoverflow.com/faq),然后再问。 –

试试这个

using (var conn = new SqlConnection(connectionString)) 
using (var command = new SqlCommand("ProcedureName", conn) { 
         CommandType = CommandType.StoredProcedure }) 
{ 
conn.Open(); 
command.ExecuteNonQuery(); 
conn.Close(); 
} 

第一StoredProcedure的创建和执行it.Then改变“创造改变”,在存储过程中

create ProcedureName 
as 
begin 
select column1,column2.. from table1 
join table2 on condition 
end 
+0

谢谢,非常感谢您的回复,它真的帮助....! – user1568738

+0

你可以告诉我'connectionString'来自哪个项目。 – user1568738

+0

http://stackoverflow.com/questions/7785769/connection-string-for-mysql-vs2010-pro-asp-net-mvc3这里提到 – SRIRAM