Ver Mensaje Individual
  #13 (permalink)  
Antiguo 11/01/2014, 12:41
Avatar de HackmanC
HackmanC
 
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: Insertar datos de una tabla a otra

Hola,

Cita:
Iniciado por Alexis88 Ver Mensaje
El problema con las tablas de cpu210 es que la tabla de imágenes, no tiene un campo que la asocie con la tabla de artículo y en la descripción de la imagen en el campo url_img, el identificador se encuentra concatenado a un guión bajo, un número y una extensión, por eso es que dicha query no funcionaría. Por eso es que le propuse esa larga e ineficiente solución. ...
¿En serio? No comprendo bien todavía, todo eso ya está entendido, la consulta funciona exactamente buscando dentro del campo url_img el guión bajo y la extensión.

Hagamos una prueba con los datos iniciales ...
por puro interés científico nada mas ...

Código MySQL:
Ver original
  1. CREATE SCHEMA datos;
  2. USE datos;
  3.  
  4. CREATE TABLE articulos (id int, nombre varchar(100), descripcion varchar(100));
  5. CREATE TABLE imagenes (url_img varchar(100));
  6.  
  7. INSERT INTO articulos VALUES (1234, 'nombre1', 'desc1');
  8. INSERT INTO articulos VALUES (4567, 'nombre2', 'desc2');
  9.  
  10. INSERT INTO imagenes VALUES ('1234_1.jpg');
  11. INSERT INTO imagenes VALUES ('4567_1.jpg');
  12. INSERT INTO imagenes VALUES ('4567_2.jpg');

Código:
mysql> SELECT a.id, a.nombre, a.descripcion, GROUP_CONCAT(b.url_img SEPARATOR ',') FROM articulos a LEFT JOIN imagenes b ON a.id = LEFT(b.url_img, LOCATE('_', b.url_img)) GROUP BY a.id;
+------+---------+-------------+---------------------------------------+
| id   | nombre  | descripcion | GROUP_CONCAT(b.url_img SEPARATOR ',') |
+------+---------+-------------+---------------------------------------+
| 1234 | nombre1 | desc1       | 1234_1.jpg                            |
| 4567 | nombre2 | desc2       | 4567_2.jpg,4567_1.jpg                 |
+------+---------+-------------+---------------------------------------+
2 rows in set (0.00 sec)
¿Que parte no funcionó según lo que dices?

Saludos,