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

consulta!!!

Estas en el tema de consulta!!! en el foro de Bases de Datos General en Foros del Web. Hola, necesito ayuda con un consulta relacionada. Describo las tablas: CASA ==== id_casa______nombre --------------------- 1___________blanca 2___________verde 3___________azul 4___________roja CONCTATO ======== id_casa_____tipo_contacto______nom_contacto ------------------------------------------- 1_______________2_____________juan 3_______________1_____________pepe 3_______________3_____________susana ...
  #1 (permalink)  
Antiguo 15/11/2010, 05:10
Avatar de arprielo  
Fecha de Ingreso: octubre-2007
Mensajes: 67
Antigüedad: 16 años, 6 meses
Puntos: 0
consulta!!!

Hola, necesito ayuda con un consulta relacionada. Describo las tablas:

CASA
====
id_casa______nombre
---------------------
1___________blanca
2___________verde
3___________azul
4___________roja


CONCTATO
========
id_casa_____tipo_contacto______nom_contacto
-------------------------------------------
1_______________2_____________juan
3_______________1_____________pepe
3_______________3_____________susana
4_______________1_____________vicente
4_______________2_____________ana


RESULTADO DE LA CONSUTA QUE NECESITO
=============================
nombre__________nom_contacto
--------------------------------
blanca_____________juan
verde______________
azul_______________pepe
roja_______________ana


Observaciones: se pide que salgan todas las casas con UN SOLO contacto tanto si tiene varios como si no tiene ninguno (el caso de la casa verde), y que sea el tipo de contacto 2 como prioritario es decir, si una casa tiene 3 tipos de contactos que salga el tipo de conctacto 2 primeramente, sino tiene ese que salga el 1 y si tampoco lo tiene que salga 3. De no tener niguno que salga vacio.


Espero que sea posible. Muchas gracias
__________________
Viva Linux! viva Ubuntu...!
  #2 (permalink)  
Antiguo 15/11/2010, 07:20
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: consulta!!!

Código MySQL:
Ver original
  1. SELECT DISTINCT casa.id_Casa,
  2. If(cnt2.nom_contacto Is Null,
  3.      If(cnt1.nom_contacto Is Null,
  4.            If(cnt3.nom_contacto Is Null, "", cnt3.nom_contacto),
  5.                    cnt1.nom_contacto),
  6.                          cnt2.nom_contacto) AS nom_contacto
  7. FROM ((casa
  8.             LEFT JOIN  (SELECT id_casa,nom_contacto  FROM contacto  WHERE tipo_contacto=1) as cnt1 ON casa.id_Casa = cnt1.id_casa)
  9.             LEFT JOIN (SELECT id_casa,nom_contacto  FROM contacto  WHERE tipo_contacto=2) as cnt2 ON casa.id_Casa = cnt2.id_casa)
  10.             LEFT JOIN  (SELECT id_casa,nom_contacto  FROM contacto  WHERE tipo_contacto=3) as cnt3  ON casa.id_Casa = cnt3.id_casa;

Si?

Quim
  #3 (permalink)  
Antiguo 15/11/2010, 09:33
Avatar de arprielo  
Fecha de Ingreso: octubre-2007
Mensajes: 67
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: consulta!!!

Gracias quimfv!!!

ERES UN GENIO!!! Justo lo que buscaba.

Muchas gracias
__________________
Viva Linux! viva Ubuntu...!

Etiquetas: bases-de-datos
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 18:06.