![]() |
composicion externa mysql Hola a todos. Quisiera saber si alguien me puede ayudar con una consulta. Aclaro que no tengo muy en claro el tema de left join, right outer join...... En fin mi problema es que me estan faltando algunos datos en el resultado de la consulta. Tengo lo siguiente: - Tabla EMPRESAS, CODPOSTAL - Empresas tiene dos campos, CPREAL, CPLEGAL con los cuales emparejo con la tabla CODPOSTAL - Cree una vista v_empresas para que me los datos de la empresa y localidad y provincia. - La vista es asi CREATE OR REPLACE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v_empresas` AS select -datosvariosdeempresa- ` from (`empresas` left join `codpostal` on(((`empresas`.`cp` = `codpostal`.`cp`) and (`empresas`.`cpreal` = `codpostal`.`cp`)))) pero me muestra null en los campos localidad y provincia que son datos de la tabla codpostal. Por favor, aunque sea una ayudita agradeceré muchisimo. Saludos:'( |
Re: composicion externa mysql Guau .... pues por principio de cuentas creo que tienes varios paréntesis que marean un poco y me da la impresión de que tienes una ligera inconsistencia ... pues estas relacionando el campo codpostal.cp con 2 campos; empresas.cp y empresas.cpreal ... supongo que esa es la razón por la que tu vista está arrojando nulls. Si estoy entendiendo bien tu planteamiento ... tu solución sería algo como esto (solo la parte del query, el resto es integrarlo en la construcción de la vista): Código: SELECT -datosvariosdeempresa-... suerte :arriba: |
Re: composicion externa mysql Hola. Gracias por tu respuesta. A ver si te entendí, sería algo así? SELECT -datosvariosdeempresa- FROM empresas e LEFT JOIN codpostal c ON e.cp = c.cp AND e.cpreal = c.cp Los dos campos (e.cp y e.cpreal) estan relacionados con c.cp que es la que tiene (codigopostal, localidad, provincia) Saludos !!:arriba: |
Re: composicion externa mysql Ah, bien, pero entonces ... solo preguntar ¿vale la pena relacionar ambos? o es posible que en tu e.cp y e.cpreal tengas datos distintos? ... esto es por performance ... porque si tienen siempre datos los 2 campos y en ambos tienes siempre lo mismo valdría la pena eliminar uno tanto de la tabla como del join, con lo que te quedaría Código: SELECT -datosvariosdeempresa-Suerte con eso :-D |
Re: composicion externa mysql Hola nuevamente. El tema es que son dos datos distintos. Uno es el CodPostal de la dirección real y el otro es el CodPostal de la dirección legal. Posiblemente en algun momento coincidan, pero muchas veces van a ser distintos CodPostal. Se Entiende? Por ejemplo el domicilio legal es Buenos Aires y el domicilio real es Cordoba. Como me quedaría la consulta? Nuevamente, muchas gracias por tus respuestas. |
Re: composicion externa mysql Bien, siendo así ningún campo sobra. La pregunta ahora es ... en algún momento muestras datos de la tabla codpostal? ... si no los muestras y estas usando LEFT JOIN ... dicho join no te sirve ... En este caso los nulls que te está mostrando es porque en los campos codpostal y/o cp hay algún valor que no existe en codpostal.cp ... si quieres evitar los nulls tienes que usar INNER JOIN ... y entonces te quedaría así ... Código: SELECT -datosvariosdeempresa-Ojalá te haya aclarado las cosas :arriba: |
Re: composicion externa mysql Hola de nuevo. Ya me estoy abusando de tu paciencia con tantas preguntas. La cuestión es que necesito mostrar en un formulario también los valores nulos. Mis tablas....... Empresas: codigo, nombre, direccionlegal, cplegal, direccionReal, cpReal, masdatosdeempresa.... CodPostal: codigo, localidad, provincia Saludos!!! y muchas :arriba: gracias |
Re: composicion externa mysql mmarti, no te preocupes, para eso estamos! Para mostrar también los valores nulos entonces tendrías que usar LEFT JOIN. Código: SELECT e.cp, c.cp, e.cpreal, -datosvariosdeempresa-Suerte y saludos :arriba: |
Re: composicion externa mysql Muchísimas gracias por tu ayuda. Probé con lo último que me mandaste y funcionó bárbaro. Muchas gracias Master. :arriba: :arriba: :arriba: :arriba: |
Re: composicion externa mysql Excelente, qué bueno que te sirvió ... aunque me falta muchísimo para ser master, pero gracias ... Muchos saludos y suerte por allá :arriba: |
| La zona horaria es GMT -6. Ahora son las 20:34. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.