【发布时间】:2016-12-07 12:20:12
【问题描述】:
我正在学习编写存储过程。我想为我的 mysql 存储过程添加三个 select 语句。 第二个和第三个 select 语句需要它们上面的 select 语句的结果。 我试着写如下。但没有成功。
CREATE DEFINER=`root`@`localhost` PROCEDURE `SPTeam`(IN date_x date, OUT emplist3 varchar(200))
BEGIN
SELECT
(
select emp_event.employee_id as emplist1
from emp_event
where emp_event.date = date_x
),
(
select emp_position.employee_id as emplist2
from emp_position
where FIND_IN_SET(emp_position.employee_id, emplist1)=0
AND emp_position.position = "Cameraman"
),
(
select employee.name as emplist3
from employee
where employee.id IN (emplist2)
);
END
这是我得到的错误。
Error Code: 1054. Unknown column 'emplist1' in 'where clause'
有人请纠正我。 谢谢你。
【问题讨论】:
-
但没有成功。是什么意思?例外?
-
你不能这样做,你需要在第三个IN语句中重复第二个查询以获得员工ID
-
还有一个问题是子查询时分选字段时无法获取多行数据
-
@Forward 我用我得到的错误编辑了这个问题。请检查一下。
-
@cichy 没有合适的方法吗?