Recursos y más /

Ayuda en SQL (join) en 3 tablas.....??

Participa en el tema Ayuda en SQL (join) en 3 tablas.....?? en el foro Recursos y más.
Gente, nesecito un join entre estas tablas. y se me complica, ase poco esyoy con ...

Buscar en este tema:
 
  •  
    #1 Ayuda en SQL (join) en 3 tablas.....??
    Gente, nesecito un join entre estas tablas.
    y se me complica, ase poco esyoy con sql....

    y que me de el siguiente resultado
    ----------
    Domicilio // Persona // Edad // Manzana
    9 de julio 128 // juan de los palotes // 33 / 100
    ---------

    persona
    *persona: integer = nextval ( ' nroperson_seq ')
    fk_tipoDocumento*ucdd: integer
    +numeroDocumento: integer
    +apellido: text
    +nombre: text :
    +nacimiento: date
    +fallecimiento: date
    calle
    *calle: integer
    +fk_localidad*ucdr: integr = 0
    +codificacion: varchar (10)
    +nombre: text

    Domicilio
    *domicilio: integer = nextval ( ' iddomicilio_seq ' )
    fk_calle*ucdd: integer = 0
    +numero: text
    +departamento: text
    +manzana: text


    desde ya gracias de antemano...
    saludos
    +
     
    0
    Me gusta
     
    | Más
  • #2 Re: Ayuda en SQL (join) en 3 tablas.....??

    Debes tener un campo en común entre dos tablas y otro entre otras dos, para poder vincularlas.

    Veo que entre Calle y Domicilio ese campo es Calle y es de tipo Integer, pero entre Domicilio y Persona usas el campo nombre lo cual puede provocarte problemas ya que podes tener en la tabla Persona dos tipos llamados Juan Perez, y uno vive en el Polo Sur y el otro en el Norte. :P
    En la tabla Persona debes establecer un campo ID de caracter único.

    Pero de todas formas, a modo de ejemplo:

    Teniendo las tablas TablaA, TablaB y TablaC:

    SELECT TablaA.CampoA, TablaB.CampoB, TablaC.CampoC FROM TablaA INNER JOIN (TablaB INNER JOIN TablaC ON TablaC.ID = TablaB.ID) ON TablaB.ID = TablaA.ID WHERE TablaA.Nombre = 'Pepe'

    Contame q sucede!!
    Me gusta este mensaje
  • #3 Re: Ayuda en SQL (join) en 3 tablas.....??

    No entiendo bien tu nomenclatura, no me queda claro qué campo une la tabla persona con la tabla domicilio.
    Me gusta este mensaje
  • #4 Re: Ayuda en SQL (join) en 3 tablas.....??

    A ver.
    Primero que nada.
    La estructura de tus tablas debería ser de la siguiente manera:

    persona
    *persona: integer = nextval ( ' nroperson_seq ')
    fk_tipoDocumento*ucdd: integer
    +numeroDocumento: integer
    +apellido: text
    +nombre: text :
    +nacimiento: date
    +fallecimiento: date
    +fk_domicilio: integer (ESTA DEBERIA SER LA CLAVE QUE UNE A LA PERSONA CON SU DOMICILIO DE LA TABLA DOMICILIO).

    calle
    *calle: integer
    +fk_localidad*ucdr: integr = 0
    +codificacion: varchar (10)
    +nombre: text

    Domicilio
    *domicilio: integer = nextval ( ' iddomicilio_seq ' )
    fk_calle*ucdd: integer = 0 (ESTA ES LA QUE UNE LA CALLE CON EL DOMIICLIO)
    +numero: text
    +departamento: text
    +manzana: text


    TU query sería algo mas ommenos así:

    Código:
    SELECT PE.Apellido, PE.Nombre, CA.Nombre as Calle, DOM.Numero, DOM.Departamento, CA.Localidad 
    FROM Persona as PE
    JOIN Domicilio AS DOM ON (PE.fk_domicilio = DOM.domicilio)
    JOIN Calle AS CA ON (CA.calle = DOM.fk_calle)
    

    Los campos los estableces vos, es solo un ejemplo.

    Lo que estamos haciendo ahí es:

    Elegimos de la tabla persona
    Metemos los datos de la tabla domicilio, en donde el dato del campo fk_domiclio de la tabla PERSONA, sea igual al del campo domicilio de la tabla DOMICILIO

    Despues Metemos los datos de la tabla Calle donde el códifo de Calle de la tabla calle, sea igual al código calle (fk_calle) de la tabla DOMICILIO.

    Si no te quedó claro algo avisa.

    SAludos!
    Me gusta este mensaje


Estadísticas del tema
  • 3 RESPUESTAS
  • 21348 VISTAS
  • 4 USUARIOS RESPONDIERON
 
Ir arriba
Contacto | Acerca de | Ayuda | Términos Legales | privacidad | Pautas de convivencia | Mapa de los foros | TrabajÁ con nosotros
©2008 Psicofxp.com S.A. - Todos los derechos reservados
Certifica IAB