救救孩子,实现当两张表拥有共同的字段时将两张表相应内容插入第三张表的问题

最近刚接触oracle数据库,想实现如图的效果。
图片说明
表2中的SGID为主键,表3中的SGID为外键。

通过网上查资料,自己写了一个存储过程+动态游标的方法来实现。结果发现不仅新插入的值只会重复插入表1的第一列,连以前表2存在内容也一起重复同步了。
我的代码如下,求大神指点一下如何改进,不胜感激。
CREATE OR REPLACE PROCEDURE P_TEST
IS

--  1. 游标获得 table_1 表数据

  CURSOR T1_CURSOR
  IS     SELECT T.MEMBER,T.MING  FROM table_1 T;

 -- 2. 游标获得 获得table_2 表数据

  CURSOR  T2_CURSOR
  IS     SELECT  T.SGID,T.MING  FROM table_2 T;

BEGIN

  -- 3. 嵌套循环获得需要处理的数据

FOR FOR_T2_CURSOR IN T2_CURSOR

  LOOP


FOR FOR_T1_CURSOR IN T1_CURSOR

  LOOP

 -- 4. 判断

    IF FOR_T1_CURSOR.MING  =  FOR_T2_CURSOR.MING

      THEN

 -- 5. 插入数据

        INSERT INTO table_3 (MEMBER,MING,SGID)

        VALUES(FOR_T1_CURSOR.MEMBER,,FOR_T1_CURSOR.MING,FOR_T2_CURSOR.SGID);

       END IF;

        END LOOP;

        END LOOP;

--6. 结束

END P_TEST;

存储过程需要定时执行,如下,但感觉建after触发器比较好,
CURSOR T1_CURSOR IS SELECT T2.SGID SGID,T2.MING MING,T1.MEMBER MEMBER FROM table_2 T2 INNER JOIN table_1 T1 ON T1.MING=T2.MING WHERE T2.SGID NOT IN (SELECT SGID FROM table_3 T3 GROUP BY SGID);
BEGIN
FOR FOR_T1_CURSOR IN T1_CURSOR
LOOP
INSERT INTO table_3 (MEMBER,MING,SGID)
VALUES(FOR_T1_CURSOR.MEMBER,,FOR_T1_CURSOR.MING,FOR_T1_CURSOR.SGID);
END LOOP;
END ;