Ver Mensaje Individual
  #2 (permalink)  
Antiguo 24/08/2009, 02:41
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Separar datos de una sola tabla en 2 tablas

Xtian87,
Supongo que usas tablas MyIsam y que la tabla que tienes se llama tutabla. Estos serían algunos pasos para hacer lo que quieres.
1) crea una tabla llamada actividades con los campos, cod y actividad
2) cargas las actividades de tutabla en la tabla actividades: INSERT INTO actividades (COD, actividad) SELECT cod, actividad FROM `tutabla` WHERE COD between 'A' AND 'Z'
3) borras de tu tabla Antigua las actividades: DELETE FROM `tutabla` WHERE COD between 'A' AND 'Z'
4) cambias el nombre de la tabla tutabla a subactividades: RENAME TABLE `tubase`.`tutabla` TO `tubase`.`subactividades` ;
5) añades un campo codactividad a la tabla subactividades: ALTER TABLE `subactividades` ADD `codactividad` VARCHAR( 20 ) NOT NULL AFTER `COD` ;
6) cambias el nombre de campo actividad a subactividad en la tabla subactividades: ALTER TABLE `subactividades` CHANGE `ACTIVIDAD` `subactividad` VARCHAR( 250 )
7) UPDATE subactividades SET codactividad = 'A' WHERE COD LIKE '1.%'
y lo haces con cada cod de actividad, es decir el A con '1.%'; el B con '2.%'; el C con '3.%' y así respectivamente, si es que son estas correspondencias.
8) y ya podrás hacer una consulta como esta:
SELECT subactividades.subactividad FROM subactividades INNER JOIN actividades ON actividades.cod = subactividades.codactividad WHERE actividades.cod = 'A'
Comprueba siempre los tamaños de los campos (deben ser iguales en tamaño y tipo a los campos de procedencia) para no cortar el texto al trasladar de una tabla a otra.

Una advertencia: por los textos que has pegado, sospecho que tal vez tengas un problema de codificación. Dinos cómo tienes codificada la base y las tablas, y el cotejamiento de base, tablas y campos, por si viéramos algo raro.

Última edición por jurena; 24/08/2009 a las 04:26