A ver, si ya tienes todos los rut en la tabla clientes, puedes añadir un campo rut en la factura y cargar todos los datos mediante una consulta sencilla de actualización; luego podrías eliminar la relación por idcliente y dejarla por rut, pero también tendrías que retocar la programación, claro. Luego harías esa misma consulta con INNER JOIN por rut y filtrado con WHERE por un rut concreto.
Con otras palabras, que si tienes todos los rut cargados en la tabla clientes (indexados), y tienes relacionadas las facturas por idcliente, y añades un campo rut en la tabla facturas, no te resultará complicado actualizar los RUT mediante una simple consulta de actualización. Más adelante podrás eliminar incluso el campo idcliente en ambas tablas y hacer primary key el rut de clientes, que es un identificador único y natural, y foreign key el rut de facturas. Pero tendrás que ir paso a paso.
Debes cumplimentar todos los rut de la tabla clientes, sin dejar ninguno vacío. Y, luego, una vez creado el campo rut en facturas, si el campo en clientes también se llama rut, con algo tan sencillo como esto tendrías los rut en la tabla facturas.
Comprobado que todo está bien, puedes establecer la relación entre clientes y facturas por el rut, y hacer rut de clientes primary key, tras eliminar, claro, el idcliente, pero claro hay que revisar toda la programación para actuar sobre el rut y con esa relación.
Antes de hacer nada, guarda copia de tu base por si ocurre algo inesperado en el proceso.