Ver Mensaje Individual
  #4 (permalink)  
Antiguo 18/04/2014, 04:40
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Consulta Inner Join Devuelve Vacio Si en Una tabla No Hay Resultado

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.
Código MySQL:
Ver original
  1. UPDATE facturas f INNER JOIN clientes c ON f.idcliente = c.idcliente
  2. SET f.rut = c.rut
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.

Última edición por jurena; 18/04/2014 a las 04:50