Ver Mensaje Individual
  #9 (permalink)  
Antiguo 21/02/2006, 06:12
zsamer
 
Fecha de Ingreso: noviembre-2003
Mensajes: 798
Antigüedad: 20 años, 5 meses
Puntos: 8
Cita:
Iniciado por zsamer
Gracias deadlykyo, finalmente funcionó bastante bien, tuve que hacer un pequeño cambio, utilicé HEAVING en vez de WHERE para abtener la experiencia laboral mas reciente. aquí dejo el query por si alguien le sirve para algo similar.

También acepto recomendaciones para mejorar o optimizar el SQL u otra forma de sql para hacer esto mismo.

Código PHP:
//para la busqueda dentro del query

    
$search_query  'WHERE ( ';
    
$search_query .= 'us.nombre_usuario LIKE "%' $palabra_clave '%" OR ';
    
$search_query .= 'us.apaterno_usuario LIKE "%' $palabra_clave '%" OR ';
    
$search_query .= 'us.amaterno_usuario LIKE "%' $palabra_clave '%" OR '
    
$search_query .= 'us.nombre_comuna_us LIKE "%' $palabra_clave '%" OR '
    
$search_query .= 'us.nombre_region_us LIKE "%' $palabra_clave '%" OR '
    
$search_query .= 'us.nombre_industria LIKE "%' $palabra_clave '%" OR '
    
$search_query .= 'us.nombre_sector LIKE "%' $palabra_clave '%" OR '
    
$search_query .= 'us.nombre_carrera LIKE "%' $palabra_clave '%" OR '
    
$search_query .= 'us.nombre_universidad LIKE "%' $palabra_clave '%" OR ';
    
$search_query .= 'exp.cargo_empresa LIKE "%' $palabra_clave '%" OR ';
    
$search_query .= 'exp.nombre_area_funcional LIKE "%' $palabra_clave '%" OR ';
    
$search_query .= 'exp.nombre_empresa LIKE "%' $palabra_clave '%" ';
    
$search_query .= ') ';

$result_busqueda_usuario mysql_query('SELECT
            us.id,
            us.username,
            us.nombre_usuario,
            us.apaterno_usuario,
            us.amaterno_usuario,
            us.image_name,
            us.thumb_name,
            us.objetivos,
            us.especialidades, 
            us.nombre_comuna_us,
            us.nombre_region_us,
            us.nombre_industria,
            us.nombre_sector,
            us.nombre_carrera,
            us.nombre_universidad,            
            exp.cargo_empresa,
            exp.nombre_empresa,
            exp.nombre_comuna_exp,
            exp.nombre_region_exp,
            exp.nombre_industria_exp,
            exp.nombre_sector_exp,
            exp.nombre_tipo_empresa,
            exp.nombre_tamano_empresa,
            exp.nombre_area_funcional FROM ' 
.'( SELECT     
            us2.id,
            us2.username,
            du.nombre_usuario, 
            du.apaterno_usuario,
            du.amaterno_usuario,
            du.image_name,
            du.thumb_name,
            pp.objetivos,
            pp.especialidades, 
            pc.nombre_comuna as nombre_comuna_us,
            pr.nombre_region as nombre_region_us,
            pi.nombre_industria,
            ps.nombre_sector,
            pcar.nombre_carrera,
            pun.nombre_universidad 
            FROM posters us2 '
.'LEFT JOIN prof_datos_usuarios du ON (us2.id=du.id_usuario) '
.'LEFT JOIN prof_comunas pc ON (pc.id_comuna=du.id_comuna) '
.'LEFT JOIN prof_regiones pr ON (pr.id_region=du.id_region) '
.'LEFT JOIN prof_profesion_usuarios pp ON (us2.id=pp.id_usuario) '
.'LEFT JOIN prof_industrias pi ON (pi.id_industria=pp.id_industria) '
.'LEFT JOIN prof_sectores ps ON (ps.id_sector=pp.id_sector) '
.'LEFT JOIN prof_carreras pcar ON (pcar.id_carrera=pp.id_carrera) '
.'LEFT JOIN prof_universidades pun ON (pun.id_universidad=pp.id_universidad) '
.'group by us2.id,us2.username ORDER BY us2.id) as us LEFT JOIN '            
.'(SELECT                 
            pel.id_usuario,
            pel.cargo_empresa,
            pel.nombre_empresa,
            pel.fecha_inicio,
            pc2.nombre_comuna as nombre_comuna_exp,
            pr2.nombre_region as nombre_region_exp,
            pi2.nombre_industria as nombre_industria_exp,
            ps2.nombre_sector as nombre_sector_exp,
            ptipe.nombre_tipo_empresa as nombre_tipo_empresa,
            pte.nombre_tamano_empresa as nombre_tamano_empresa,
            paf.nombre_area_funcional as nombre_area_funcional
            FROM prof_exp_laboral pel '
                    
.'LEFT JOIN prof_comunas pc2 ON (pc2.id_comuna=pel.id_comuna) '
.'LEFT JOIN prof_regiones pr2 ON (pr2.id_region=pel.id_region) '
.'LEFT JOIN prof_industrias pi2 ON (pi2.id_industria=pel.id_industria) '
.'LEFT JOIN prof_sectores ps2 ON (ps2.id_sector=pel.id_sector) '
.'LEFT JOIN prof_tipo_empresa ptipe ON (ptipe.id_tipo_empresa=pel.id_tipo_empresa) '
.'LEFT JOIN prof_tamano_empresa pte ON (pte.id_tamano_empresa=pel.id_tamano_empresa) '
.'LEFT JOIN prof_area_funcional paf ON (paf.id_area_funcional=pel.id_area_funcional) '
.'GROUP BY pel.id_usuario '
.'HAVING pel.fecha_inicio=MAX(pel.fecha_inicio) '
.') exp ON (exp.id_usuario=us.id) '    
$search_query .'order by us.id') or die (mysql_error()); 
¿hay alguna forma de optimizar el sql de mi respuesta anterior?

¿es posible hacer un SQL sin subquerys que muestre el mismo resultado?

gracias y salu2

zsamer