Ver Mensaje Individual
  #2 (permalink)  
Antiguo 13/12/2013, 12:48
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: cruzar datos entre dos tablas

Código MySQL:
Ver original
  1. INSERT INTO b_cities
  2. SELECT bc.city_id,
  3.             bc.name,
  4.             lm.id_country,
  5.             lm.id_prov,
  6.             lm.id
  7. FROM cities bc INNER JOIN list_municipios lm
  8.                            ON lm.desc_en=bc.name
  9.                                  AND lm.id_country = bc.countrycode
  10. WHERE bc.languagecode = 'en';


Esto te dará las que sean iguales y del mismo pais ... si usas

Código MySQL:
Ver original
  1. INSERT INTO b_cities
  2. SELECT bc.city_id,
  3.             bc.name,
  4.             lm.id_country,
  5.             lm.id_prov,
  6.             lm.id
  7. FROM cities bc INNER JOIN list_municipios lm
  8.                            ON lm.desc_en SOUNDS LIKE bc.name
  9.                                  AND lm.id_country = bc.countrycode
  10. WHERE bc.languagecode = 'en';

las que suenen igual....

list_country no la necesitas..... excepto que quieras el nombre del pais, pewro como no lo pones en la lista del select....

Si
lm.id_country = bc.countrycode

no son iguales

Código MySQL:
Ver original
  1. INSERT INTO b_cities
  2. SELECT bc.city_id,
  3.             bc.name,
  4.             lm.id_country,
  5.             lm.id_prov,
  6.             lm.id
  7. FROM (cities bc INNER JOIN list_country lc ON lc.code = bc.countrycode)
  8.                       INNER JOIN list_municipios lm
  9.                            ON lm.desc_en SOUNDS LIKE bc.name
  10.                                  AND lm.id_country = lc.id
  11. WHERE bc.languagecode = 'en';
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 13/12/2013 a las 12:58