Я хочу написать вложенный курсор с циклом while, чтобы получить результаты из таблицы table_B, когда имя столбца из таблицы Table_A совпадает с col1 таблицы Table_B.
если выбрать col1, col2, col3 из Table_B, где col1 = tblA_col1 равно нулю, то перейти к следующей строке и вернуть col1.
И мне нужно сохранить результаты столбца в переменных.
Delimiter $$
DROP PROCEDURE IF EXISTS sp_test;
CREATE PROCEDURE sp_test()
begin
DECLARE done, done1 int DEFAULT 0;
DECLARE tblA_col1 varchar(255);
DECLARE tblB_col1 varchar(255);
DECLARE tblB_col2 varchar(255);
DECLARE tblB_col3 varchar(255);
DECLARE curA CURSOR FOR SELECT column_name FROM Table_A;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
open curA;
WHILE (done = 0) do
FETCH next FROM curA INTO tblA_col1;
DECLARE curB CURSOR FOR select col1, col2, col3 from Table_B where col1 = tblA_col1;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done1 = 1;
open curB;
Fetch next from curB into tblB_col1,tblB_col2,tblB_col3;
select tblB_col1;
select tblB_col2;
select tblB_col3;
close curB;
if tblB_col1 is null then
tblB_col1 = tblB_col1;
end if;
end while;
close curA;
end;
$$
-- call sp_test
Я новичок в курсорах, и у меня возникают проблемы при использовании вложенного curB. Можете ли вы помочь?