FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Problema con Joins
ha ver colegas si me pueden ayudar con esta consultica...
Acabo de enterarme de la utilidad de la clausula JOIN del SQL...super util. Pero he encontrado un tropiezo: Tengo la tabla ELECTOR(Cedula, Nombre, Direccion..etc) La tabla DETELECTOR(Cedula, IdeCiudadEleccion) La tabla CIUDAD(IdeCiudad, nombreCiudad) Y quiero mostrar todos los electores con la ciudad de eleccion de cada uno, para ello utilizo el INNER JOIN con DETELECTOR (porque debo mostrar solo los que tengan por lo menos una fila en esta tabla). Pero en esta misma consulta debo mostrar el nombre de la CIUDADELECCION, y aqui no todos tienen...pero quiero que aparezca de todos modos un espacio en blanco (para esto es el LEFT JOIN) Creo que estos son left anidados.... Esta es la consulta: Select E.Cedula, E.Nombres, E.Apellidos, TE.Nombre TipoElector, G.Nombre grupo, D.Nombre DepartamentoOrigen, M.Nombre MunicipioOrigen From Elector E, Grupo G, TipoElector TE INNER Join (DetElector DE Left Join Elector E2 On DE.CedLider=E2.Cedula) On E.cedula=DE.Cedula Left Join Depto D On E.IdeDeptoOrigen=D.IdeDepto Left Join Mpio M On E.IdeOrigen=M.IdeMpio Where E.IdeGrupo=G.IdeGrupo And E.IdeTipoElector=TE.IdeTipoElector Pero me sale un error INVALID PARAMETER.... que no tengo idea de que se trata..... Cualquier ayuda es buena.... Muchas graciAS....
__________________
LK |
#2
|
||||
|
||||
Que tal Luis.
¿todavía sin usar etiquetas? Esta vez será mejor que edites tu mensaje y las coloques. ¿todavía no sabes usarlas?, pues epa... el vínculo a la ayuda de la etiqueta [code] está en mi firma, y la etiqueta [sql] se usa igual. Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#3
|
|||
|
|||
Aclaracion...
Tienes razon.....que tal ahora.....
Te agradezco cualquier ayuda.. ha ver colegas si me pueden ayudar con esta consultica... Acabo de enterarme de la utilidad de la clausula JOIN del SQL...super util. Pero he encontrado un tropiezo: Código:
Tengo la tabla ELECTOR(Cedula, Nombre, Direccion..etc) La tabla DETELECTOR(Cedula, IdeCiudadEleccion) La tabla CIUDAD(IdeCiudad, nombreCiudad) Creo que estos son left anidados.... Esta es la consulta: Código PHP:
que no tengo idea de que se trata..... Cualquier ayuda es buena.... Muchas graciAS....
__________________
LK |
#4
|
|||
|
|||
Disculpa mi ignorancia sobre tu diseño de la base de datos pero si es algo de elecciones no se supone que la persona solo debe estar registrada en una unica ciudad (por lo menos asi es en Colombia), si ese es tu caso deberias colocar un atributo en la tabla ELECTOR para manejar el codigo de la ciudad y podrias eliminar la tabla DETELECTOR. Esto se debe a que segun el diseño que has mostrado una persona puede aparecer en mas de una ciudad.
Sin embargo esta es una consulta para que puedas ver las personas asi no tengan determinado el lugar de eleccion. Coloco las estructuras y unos datos de prueba para los que quieran recrear la consulta y ademas porque tu consulta hace referencia a unas tablas que desconozco:
Los datos:
La consulta:
El primer left join es una union que te va a mostrar los datos de la tabla A asi su cedula no tenga ocurrencias en la tabla B. Debes colocar un segundo left join, porque si colocas inner join no te arrojara registros para las personas que no tienen ciudad. Si tu diseño cambiara y eliminas la tabla DETELECTOR la consulta quedaria
Espero te sea de utilidad
__________________
Luis Fernando Buelvas T. |
#5
|
|||
|
|||
Muchas Gracias....
Bueno Luis Fernando.....dejame regalarte unas cuantas palabras...
Es admirable el empeño que pones para ayudar a la gente en este contexto....en este caso a mi. Fue una explicacion muy detallada y clara. Que resolvio mi problema. Sobre la cuestion que comentabas de la unica ciudad para elegir.....la estructura de que puse solo una muestra que imitaba lo que en realidad estoy trabajando....no es asi en realidad.... En realidad el problema es que no se todavia el funcionamiento total del JOIN. Es por eso mi duda. Pero veo que eres un TESO en SQL .....dame una ayudita....tienes algun tutor....yo estoy empezando en INTERBASE Muchisimas Gracias
__________________
LK |
#6
|
|||
|
|||
Muchas gracias,
Sobre el SQL te recomiendo un libro que es gratuito y abarca aspectos basicos y avanzados de SQL, lo consigues en http://www.managedtime.com/freesqlbook.php3 Sin embargo el SQL es una herramienta que ayuda a simplicar el trabajo con los datos, mas importante que esto es tener una buena fundamentacion en el diseño de bases de datos para sacar un maximo aprovechamiento al SQL. Si deseas conocer aspectos avanzados de diseño de bases de datos como el modelamiento en el tiempo (tema que me apasiona), te recomiendo el libro: Oracle8. Diseño de Bases de Datos con UML Paul Dorsey, Hudicka McGraw-Hill, 1999 Otro libro interesante son los que se reciben en los cursos de Capacitacion de Oracle (no he estado en ninguno) y en especial si puedes bajar por kazaa (y me excuso porque este libro no es gratis) Oracle - Data Modeling and Relational Database Design.pdf Exitos en tu viaje con interbase, claro que si no estas amarrado a trabajar con Interbase te recomiendo trabajar mejor con Firebird.
__________________
Luis Fernando Buelvas T. |
|
|
|