2012-03-22 11 views
0

私はUSERSテーブルで重複したユーザーを作成し、別のテーブルにuser_idと重複したuser_idを挿入する必要があります。 私はこのスクリプトを作成し、私は何が間違っているのか分からない。スクリプトを使用して同じテーブル内の重複したデータを見つける方法

BEGIN 
FOR v_user IN ( 
        SELECT u.* 
        FROM users u 
       ) 
loop 
     FOR v_dupUser IN (
          SELECT u.* 
          FROM users u 
          WHERE u.email = v_user.email 
           OR u.mobile_phone = v_user.mobile_phone 
           OR u.land_line_phone = v_user.mobile_phone 
          ) 
     loop 
      INSERT INTO DUPLICATES_USERS(id, user_id, dup_user_id,time_created) 
      VALUE (SEQ_DUPLICATED_USERS, v_user.id, v_DupUser,SYSDATE); 
     end loop; 
end loop; 
END; 

ありがとうございました。

答えて

1

私はこれ以上のような道を行くことを含めます。

insert into duplicated_users 
(select a.user_id user_id, 
b.user_id dup_user_id 
from users a 
    , users b 
where (a.email = b_user.email 
    OR a.mobile_phone = b_user.mobile_phone 
    OR a.land_line_phone = b_user.mobile_phone) 
    and a.user_id != b.user_id); 
+0

ありがとうございました。 – Ofer

0

次のクエリを使用する必要があると思います。

insert into duplicated_user 
(
    select * from [USER] where 
     user_id in (select user_id 
        from [USER] 
        group by user_id having count(user_id) > 1) 
) 
関連する問題