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

Consulta con Union... o algo.

Estas en el tema de Consulta con Union... o algo. en el foro de Mysql en Foros del Web. Buenas, estoy algo oxidado de consultas complejas en SQL y no recuerdo exactamente cómo hacer lo que me interesa, a ver si alguien se le ...
  #1 (permalink)  
Antiguo 15/12/2011, 09:32
 
Fecha de Ingreso: mayo-2008
Mensajes: 103
Antigüedad: 16 años, 6 meses
Puntos: 14
Consulta con Union... o algo.

Buenas,

estoy algo oxidado de consultas complejas en SQL y no recuerdo exactamente cómo hacer lo que me interesa, a ver si alguien se le ocurre...

Dos tablas;

obras
  • idObra
  • BlaBlaObra

imagenes
  • id
  • idImagen
  • BlaBlaImagen
  • BlaBlaDatoEspecial

Necesito una consulta en la que muestre todas las Obras que contengan algo en BlaBlaObra, y luego si se cumple que tiene una Imagen relacionada en la que BlaBlaDatoEspecial valga "1" (por decir algo) , la muestre.

Algo como esto:
Código:
idObra - BlaBlaObra - BlaBlaImagen
12       -   BLOqwe    -
16       -   BLOasd!    -     51.jpg
22       -   BLOdfg!    -
26       -   BLOrty!    -
30       -   BLOtyu!     -   1231.jpg
32       -   BLOyui!     -
Si me decís que herramienta recurrir también me sirve... ya he visto que con UNION no podría... ¿Quizás con subConsultas? >.<

Gracias!
  #2 (permalink)  
Antiguo 15/12/2011, 10:39
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 10 meses
Puntos: 447
Respuesta: Consulta con Union... o algo.

Hola Urdaris_Nox:

No entiendo cómo están relacionadas las dos tablas, es decir, cómo sabes cuando una imagen corresponde a alguna obra en específico...

Creo que lo que quieres hacer se resuelve simplemente con un LEFT JOIN. Si no sabes cómo trabajan los JOIN's pregunta en Wikipiedia.

También sería conveniente que pusieras datos de ejemplo de tus tablas, para saber cómo es que llegaste al reporte de salida que pones.

Saludos
Leo.
  #3 (permalink)  
Antiguo 15/12/2011, 11:28
 
Fecha de Ingreso: mayo-2008
Mensajes: 103
Antigüedad: 16 años, 6 meses
Puntos: 14
Respuesta: Consulta con Union... o algo.

Exacto, Left Join era la instrucción!!!
He buscado info aquí: http://www.w3schools.com/sql/sql_join_left.asp

Escribí mal Imagenes, era idObra e idImagen. Escribo la instrucción como me ha quedado, más o menos (quien sabe a quién le puede ayudar).
Código:
SELECT `obras`.`idObra` idObra, `obras`.`BlaBlaObra` BlaBlaObra, `imagenes`.`BlaBlaimagen` imagenObra
FROM `obras`
LEFT JOIN `imagenes` ON `obras`.`idObra` = `imagenes`.`idObra`
WHERE BlaBlaObra IS NOT NULL
AND BlaBlaObra != ''
AND `imagenes`.`BlaBlaDatoEspecial`=1

Etiquetas: select
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 22:14.