tubasacc 2023-04-14 09:16 采纳率: 50%
浏览 76
已结题

MySQL存储过程 游标嵌套添加关联条件

MySQL存储过程 4游标插入数据
现在是两个游标,想请教大家怎么添加关联条件,在哪个地方添加条件,目前关联条件是ID。
后面的4个游标的关联条件是,日期和ID
我第二个游标开始,都声明一个ID和日期变量,怎么让这几个游标的用户ID和日期取得关联
请求帮助帮助
请求帮助帮助
请求帮助帮助
请求帮助帮助

img

  • 写回答

2条回答 默认 最新

  • 「已注销」 2023-04-14 09:26
    关注

    引用new bing部分回答作答:
    如果您想在MySQL存储过程中为多个游标添加关联条件,则可以使用JOIN语句将游标的结果集连接在一起。以下是一些示例代码,演示如何将多个游标的结果连接在一起:

    DECLARE cur1 CURSOR FOR
    SELECT id FROM table1;
    
    DECLARE cur2 CURSOR FOR
    SELECT date, id FROM table2;
    
    DECLARE cur3 CURSOR FOR
    SELECT col1, col2 FROM table3;
    
    DECLARE cur4 CURSOR FOR
    SELECT col3, col4 FROM table4;
    
    DECLARE v_id INT;
    DECLARE v_date DATE;
    DECLARE v_col1 VARCHAR(50);
    DECLARE v_col2 VARCHAR(50);
    DECLARE v_col3 VARCHAR(50);
    DECLARE v_col4 VARCHAR(50);
    
    OPEN cur1;
    
    WHILE TRUE DO
        FETCH cur1 INTO v_id;
        IF @@FETCH_STATUS <> 0 THEN
            LEAVE WHILE;
        END IF;
    
        OPEN cur2;
    
        WHILE TRUE DO
            FETCH cur2 INTO v_date, v_id;
            IF @@FETCH_STATUS <> 0 THEN
                LEAVE WHILE;
            END IF;
    
            OPEN cur3;
    
            WHILE TRUE DO
                FETCH cur3 INTO v_col1, v_col2;
                IF @@FETCH_STATUS <> 0 THEN
                    LEAVE WHILE;
                END IF;
    
                OPEN cur4;
    
                WHILE TRUE DO
                    FETCH cur4 INTO v_col3, v_col4;
                    IF @@FETCH_STATUS <> 0 THEN
                        LEAVE WHILE;
                    END IF;
    
                    -- Insert the row with all the values
                    INSERT INTO result_table (id, date, col1, col2, col3, col4)
                    VALUES (v_id, v_date, v_col1, v_col2, v_col3, v_col4);
                END WHILE;
    
                CLOSE cur4;
            END WHILE;
    
            CLOSE cur3;
        END WHILE;
    
        CLOSE cur2;
    END WHILE;
    
    CLOSE cur1;
    

    在上述示例代码中,第一个游标查询了table1中的所有ID。接下来,第二个游标查询了table2中与每个ID关联的日期。第三个游标查询了table3中的其他列,最后一个游标查询了table4中的其他列。将这些游标的结果连接在一起,使用INSERT语句将它们插入到名为result_table的表中。

    每个游标都使用了不同的变量来存储它们的结果。因此,在插入行之前,您可以使用这些变量来将结果集合并到一个行中,以便插入到结果表中。在第二个游标中,您可以声明一个日期变量并与ID变量一起使用。然后,在后续游标中,您可以重复使用这些变量,并在每个游标中为它们赋值,以便将结果连接在一起。
    希望这是你需要的。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月22日
  • 已采纳回答 4月14日
  • 创建了问题 4月14日

悬赏问题

  • ¥20 关于#目标检测#的问题:(qq收集表到时间才能填写,填写的份数有上限)
  • ¥50 ZYNQ7020双核FLAHS烧写的问题
  • ¥20 ue 5 中想要实现第一人称人物左右行走摆动的效果,摄像头只向右摆动一次(关键词-结点)
  • ¥15 钢岔管添加弹性约束模拟围岩作用
  • ¥15 AD9164瞬时带宽1.8G,怎么计算出来?
  • ¥15 鼠标右键,撤销删除 复制 移动,要怎样删除
  • ¥15 使用MATLAB进行余弦相似度计算加速
  • ¥15 服务器安装php5.6版本
  • ¥15 我想用51单片机和数码管做一个从0开始的计数表 我写了一串代码 但是放到单片机里面数码管只闪烁一下然后熄灭
  • ¥20 系统工程中,状态空间模型中状态方程的应用。请猛男来完整讲一下下面所有问题