Ver Mensaje Individual
  #2 (permalink)  
Antiguo 24/02/2014, 13:01
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: error Duplicate Column name

Hola summerblack:

No termino de entender la lógica de tu consulta, pero tienes varios errores bastante graves...

En primer lugar me voy a enfocar en el mensaje de error que mencionas:

Código:
Duplicate Column name '2
Este error está en la última de tus subconsultas, en ella tienes algo como esto:


Código MySQL:
Ver original
  1. mysql> SELECT '2','2',' ','D', 'tusuario' ;
  2. +---+---+---+---+----------+
  3. | 2 | 2 |   | D | tusuario |
  4. +---+---+---+---+----------+
  5. | 2 | 2 |   | D | tusuario |
  6. +---+---+---+---+----------+
  7. 1 row in set (0.00 sec)

Es decir, estás obteniendo valores constantes (2, 2, '', D, tusuario). si observas en la consulta de arriba, la primer columna corresponde A LOS NOMBRES DE CAMPO QUE ASIGNA MySQL de manera automática... OBSERVA QUE HAY DOS CAMPOS CON IDÉNTICO NOMBRE (2)... Esta es la razón del error que te marca... si intentas meter esto como una subconsulta, obtienes el error que te aparece:

Código MySQL:
Ver original
  1. mysql> SELECT * FROM (SELECT '2','2',' ','D', 'tusuario') T;
  2. ERROR 1060 (42S21): Duplicate column name '2'

Ahora bien, ¿cómo corregir este error?, lo que tienes que hacer es asignas ALIAS DISTINTOS a cada campo... es decir, algo como esto:

Código MySQL:
Ver original
  1. mysql> SELECT * FROM
  2.     -> (   SELECT '2' campo1,
  3.     ->            '2' campo2,
  4.     ->            ' ' campo3,
  5.     ->            'D' campo4,
  6.     ->            'tusuario' campo5
  7.     -> ) T;
  8. +--------+--------+--------+--------+----------+
  9. | campo1 | campo2 | campo3 | campo4 | campo5   |
  10. +--------+--------+--------+--------+----------+
  11. | 2      | 2      |        | D      | tusuario |
  12. +--------+--------+--------+--------+----------+
  13. 1 row in set (0.00 sec)

Observa que ahora la primer columna tiene definidos los nombres como campo1, campo2, etc... de tal manera que no importa que el valor de cada campo esté repetido.

Ahora bien, continuando con la consulta, insisto en que no termino de entender qué es lo que pretendes hacer... por un lado haces un SELECT sobre la misma tabla en la que quieres meter los datos... no le encuentro ninguna lógica a eso... creo que es conveniente que comiences por explicarnos mejor qué es lo que estás intentando hacer, igual y existe alguna otra forma para poder implementar el INSERT.

Saludos
Leo