Ver Mensaje Individual
  #13 (permalink)  
Antiguo 13/11/2011, 11:17
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Campos concatenados

Sigue sin ser necesario crear el campo. En todo caso lo puedes manejar en la consulta:
Código MySQL:
Ver original
  1. SELECT A.*, B.*
  2. FROM FraccionCensal A,  TablaShapes B
  3. WHERE CONCAT(LPAD(A.id_pcia, 2, '0'), LPAD(A.id_dpto, 3, '0'), LPAD(A.id_fraccioncensal, 3, '0')) = B.id_shape;
Habría que probar:
Código MySQL:
Ver original
  1. SELECT A.*, B.*
  2. FROM FraccionCensal A INNER JOIN TablaShapes B ON
  3.     CONCAT(LPAD(A.id_pcia, 2, '0'), LPAD(A.id_dpto, 3, '0'), LPAD(A.id_fraccioncensal, 3, '0')) = B.id_shape;
porque el WHERE no es optimizable por el parser, y el FROM sí, pero nunca he probado usar estas funciones en él.
Personalmente definiría una VIEW sobre la base de este tipo de consultas porque luego es más sencillo de invocarla, y siempre estará actualizada.

Ten en cuenta siempre que no es buena práctica agregar columnas a una tabla con el único objetivo de presentar la misma información que ya existe con otro formato. Lo pagas con performance y consistencia, por todos lados.

De todos modos, si aún así quieres hacer lo que dices, consiste en la ejecución de dos sentencias: Un ALTER TABLE para agregar la columna, la cual aconsejo que sea del mismo tipo y longitud que la de la otra tabla, y un UPDATE donde asignes a esa nueva columna el resultado del CONCAT() que te pongo en esos ejemplos, sin condiciones WHERE, para que procese todos los registros.
En realidad, es una tarea simple, pero luego tienes que tener cuidado con la consistencia de datos, porque cualquier cambio en los registros requerirá volver a ejecutar el UPDATE en cuestión.

¿Se entiende la idea?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 13/11/2011 a las 16:09