Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Duda con join

Estas en el tema de Duda con join en el foro de Mysql en Foros del Web. Saludos, Estimados Amigos necesito una vez mas de su ayuda, tengo 3 tablas las cuales realizo una consulta para visualizar unos campos, este es el ...
  #1 (permalink)  
Antiguo 14/10/2009, 16:45
 
Fecha de Ingreso: diciembre-2007
Mensajes: 218
Antigüedad: 16 años, 4 meses
Puntos: 1
Duda con join

Saludos,

Estimados Amigos necesito una vez mas de su ayuda, tengo 3 tablas las cuales realizo una consulta para visualizar unos campos, este es el codigo:

SELECT * FROM (SELECT t1.`cabe_inst_lega_codigo`, t1.`cabe_inst_lega_juicio`, lp1.`juic_descripcion` AS `lp_cabe_inst_lega_juicio`, t1.`cabe_inst_lega_juicio_proceso`, lp2.`tipo_juic_proc_descripcion` AS `lp_cabe_inst_lega_juicio_proceso`,t1.`cabe_inst_l ega_numero_instruccion`, t1.`cabe_inst_lega_autoridad` FROM `adm_cabecera_instrucciones_legales` AS t1 LEFT OUTER JOIN `adm_juicio` AS lp1 ON (t1.`cabe_inst_lega_juicio` = lp1.`juic_codigo`) LEFT OUTER JOIN `adm_tipo_juicio_proceso` AS lp2 ON (t1.`cabe_inst_lega_juicio_proceso` = lp2.`tipo_juic_proc_codigo`)) subq

Pero ahora se adiciono otra tabla, el problema me surge por que no uso join y realize el sgte. codigo sin join:

SELECT `cabe_inst_lega_codigo`,`cabe_inst_lega_juicio`, `juic_descripcion` AS `lp_cabe_inst_lega_juicio`, `cabe_inst_lega_juicio_proceso`, `tipo_juic_proc_descripcion` AS `lp_cabe_inst_lega_juicio_proceso`,`cabe_inst_lega _numero_instruccion`, `cabe_inst_lega_autoridad`,`estu_juri_abog_usuario ` FROM `adm_cabecera_instrucciones_legales`,`adm_juicio`, `adm_estudio_juridico_abogados`,`adm_tipo_juicio_p roceso` WHERE `cabe_inst_lega_juicio` = `juic_codigo` AND `cabe_inst_lega_juicio_proceso` = `tipo_juic_proc_codigo` AND `estu_juri_abog_usuario`='kvargas' AND `juic_estudio_juridico_abogado`=`estu_juri_abog_co digo`

Como haria para este codigo utilizarlo con join como en el primer codigo???

De antemano muchas gracias.
  #2 (permalink)  
Antiguo 15/10/2009, 05:09
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Duda con join

Voluntad de ayudar ya hay pero si nos pones mas facil las cosas igual será más rápido...

Nos puedes decir:

que tablas tienes,
sus campos principales
su interpretació semantica (que contienen)

que tabla quieres agregar a la consulta
por que,
como se relaciona con las otras...

que obtenias con la primera consulta

que pretendes obtener con la nueva

Todo eso se podria deducir interpretando lo que nos pones pero igual perdemos el tiempo con una mala interpretación de lo que pretendes hacer....

Por cierto la primera consulta que nos pones tiene partes innecesarias.... si no la interpreto mal claro.

Quim
  #3 (permalink)  
Antiguo 22/10/2009, 10:17
 
Fecha de Ingreso: diciembre-2007
Mensajes: 218
Antigüedad: 16 años, 4 meses
Puntos: 1
Respuesta: Duda con join

Disculpa por no ser tan claro, tengo 4 tablas que son:
Detalle,items,cabecera y estudio_abogados, me sale error a partir de la clausula Where cuando utilizo es AS.

Este es el codigo utilizando INNER JOIN con AS en los WHERE:

SELECT t1.`deta_inst_lega_items` , lp0.`item_inst_lega_descripcion` AS `lp_deta_inst_lega_items` , t1.`deta_inst_lega_instruccion` , lp1.`cabe_inst_lega_juicio` AS `lp_deta_inst_lega_instruccion` , t1.`deta_inst_lega_archivo` , t1.`deta_inst_lega_tipo` , t1.`deta_inst_lega_descripcion` , t1.`deta_inst_lega_codigo` , t1.`deta_inst_lega_nombre` , t1.`deta_inst_lega_estudio_juridico_abogado` , lp7.`estu_juri_abog_nombres` AS `lp_deta_inst_lega_estudio_juridico_abogado` FROM `adm_detalle_instrucciones_legales` AS t1 INNER JOIN `adm_items_instrucciones_legales` AS lp0 ON ( t1.`deta_inst_lega_items` = lp0.`item_inst_lega_codigo` ) INNER JOIN `adm_cabecera_instrucciones_legales` AS lp1 ON ( t1.`deta_inst_lega_instruccion` = lp1.`cabe_inst_lega_codigo` ) INNER JOIN `adm_estudio_juridico_abogados` AS lp7 ON ( t1.`deta_inst_lega_estudio_juridico_abogado` = lp7.`estu_juri_abog_codigo` AND lp7.`estu_juri_abog_usuario` = 'abg-kvargas' ) where (`lp_deta_inst_lega_items` like '%noboa%') or (`lp_deta_inst_lega_instruccion` like '%noboa%') or (`deta_inst_lega_archivo` like '%noboa%') or (`deta_inst_lega_tipo` like '%noboa%') or (`deta_inst_lega_descripcion` like '%noboa%') or (`deta_inst_lega_codigo` like '%noboa%') or (`deta_inst_lega_nombre` like '%noboa%') or (`lp_deta_inst_lega_estudio_juridico_abogado` like '%noboa%') AND (lp7.`estu_juri_abog_usuario`='pru')
me slae este error: Unknown column 'lp_deta_inst_lega_items' in 'where clause'

Este es el codigo utilizando INNER JOIN sin AS en los WHERE y funciona OK

SELECT t1.`deta_inst_lega_items` , lp0.`item_inst_lega_descripcion` AS `lp_deta_inst_lega_items` , t1.`deta_inst_lega_instruccion` , lp1.`cabe_inst_lega_juicio` AS `lp_deta_inst_lega_instruccion` , t1.`deta_inst_lega_archivo` , t1.`deta_inst_lega_tipo` , t1.`deta_inst_lega_descripcion` , t1.`deta_inst_lega_codigo` , t1.`deta_inst_lega_nombre` , t1.`deta_inst_lega_estudio_juridico_abogado` , lp7.`estu_juri_abog_nombres` AS `lp_deta_inst_lega_estudio_juridico_abogado` FROM `adm_detalle_instrucciones_legales` AS t1 JOIN `adm_items_instrucciones_legales` AS lp0 ON ( t1.`deta_inst_lega_items` = lp0.`item_inst_lega_codigo` ) JOIN `adm_cabecera_instrucciones_legales` AS lp1 ON ( t1.`deta_inst_lega_instruccion` = lp1.`cabe_inst_lega_codigo` ) JOIN `adm_estudio_juridico_abogados` AS lp7 ON ( t1.`deta_inst_lega_estudio_juridico_abogado` = lp7.`estu_juri_abog_codigo` AND lp7.`estu_juri_abog_usuario` = 'abg-kvargas' ) where (( lp0.`item_inst_lega_descripcion` like '%noboa%') or (`deta_inst_lega_tipo` like '%noboa%') or (`deta_inst_lega_descripcion` like '%noboa%') or (`deta_inst_lega_codigo` like '%noboa%') or (`deta_inst_lega_nombre` like '%noboa%') or (lp7.`estu_juri_abog_nombres` like '%noboa%')) AND (lp7.`estu_juri_abog_usuario`='pru')

Que deberia cambiar para utilizar los As en las clausulas Where?.

De Antemano muchas gracias.
  #4 (permalink)  
Antiguo 22/10/2009, 11:30
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Duda con join

No se pueden usar los alias en el WHERE. Debe usarse el nombre real del campo:
Código SQL:
Ver original
  1. SELECT
  2.   t1.`deta_inst_lega_items` ,
  3.   lp0.`item_inst_lega_descripcion`,
  4.   t1.`deta_inst_lega_instruccion` ,
  5.   lp1.`cabe_inst_lega_juicio`,
  6.   t1.`deta_inst_lega_archivo` ,
  7.   t1.`deta_inst_lega_tipo` ,
  8.   t1.`deta_inst_lega_descripcion` ,
  9.   t1.`deta_inst_lega_codigo` ,
  10.   t1.`deta_inst_lega_nombre` ,
  11.   t1.`deta_inst_lega_estudio_juridico_abogado` ,
  12.   lp7.`estu_juri_abog_nombres`
  13. FROM `adm_detalle_instrucciones_legales` AS t1
  14.       INNER JOIN `adm_items_instrucciones_legales` AS lp0 ON ( t1.`deta_inst_lega_items` = lp0.`item_inst_lega_codigo` )
  15.       INNER JOIN `adm_cabecera_instrucciones_legales` AS lp1 ON ( t1.`deta_inst_lega_instruccion` = lp1.`cabe_inst_lega_codigo` )
  16.       INNER JOIN `adm_estudio_juridico_abogados` AS lp7 ON ( t1.`deta_inst_lega_estudio_juridico_abogado` = lp7.`estu_juri_abog_codigo`
  17.         AND lp7.`estu_juri_abog_usuario` = 'abg-kvargas' )
  18. WHERE
  19.       (`item_inst_lega_descripcion` LIKE '%noboa%')
  20.       OR (`cabe_inst_lega_juicio` LIKE '%noboa%')
  21.       OR (`deta_inst_lega_archivo` LIKE '%noboa%')
  22.       OR (`deta_inst_lega_tipo` LIKE '%noboa%')
  23.       OR (`deta_inst_lega_descripcion` LIKE '%noboa%')
  24.       OR (`deta_inst_lega_codigo` LIKE '%noboa%')
  25.       OR (`deta_inst_lega_nombre` LIKE '%noboa%')
  26.       OR (`estu_juri_abog_nombres` LIKE '%noboa%')
  27.       AND (lp7.`estu_juri_abog_usuario`='pru');
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 22/10/2009, 15:36
 
Fecha de Ingreso: diciembre-2007
Mensajes: 218
Antigüedad: 16 años, 4 meses
Puntos: 1
Respuesta: Duda con join

Muchas gracias gnzsoloyo, funciono OK
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:30.