BEGIN
DECLARE stopIDX int DEFAULT 0;
DECLARE returnVal varchar(222) DEFAULT '' ;
DECLARE mycursor CURSOR FOR
SELECT line.Line_ID FROM line;-- line表有6条记录
DECLARE CONTINUE HANDLER FOR NOT found SET stopIDX = 1;
OPEN mycursor;
REPEAT
FETCH mycursor INTO returnVal;
if stopIDX=0 then
SELECT * from BanCi where Line_ID = returnVal;--产生6个结果集。
end if;
UNTIL stopIDX
END REPEAT;
CLOSE mycursor;
END
描述:mysql 中有以上存储过程, 将line 表(只有6条记录) 的id 赋给游标,遍历游标,搜索班次表(banci) 出现6个结果集(各一条记录)。我想知道能不能 使用类似union 这样的谓词达到 一个结果集(6条记录)。如果有。怎么请贴个实现代码。O(∩_∩)O谢谢
或者如楼上的方案,使用 where Line_ID in (select Line_ID from FROM line)
生成1个物理表 OR 打开此游标