Uffffff se complica el problema y te cuento porque.
El supuesto "ahorro" qeu haces al no tener campo id te causó el primer problema que no es poco.
Mi recomendación es la siguiente y no lleva mucho trabajo (2 consultas)
Primero crear un campo id en tu tabla "registrado", si lo creas como primario autoincrementable NOT NULL, te asignará directamente una id por registro y si como dices no tienes a nadie duplicado no habrá problemas.
Segundo actualizar la tabla roles para que se asocie ocn registrado por la id algo así
Código:
UPDATE
roles,registrados
SET
rol.login = registrados.id
WHERE
rol.login = registrados.login
Una vez hecho esto podrás usar cualquiera de las soluciones qeu te propuse antes y además tus consutas se realizarán a traves de una id que es una clave primaria numérica por lo que irán bastante más rápdias.
Un saludo espero que te valga cracka ;)