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

Problema con Inner Join y subconsulta

Estas en el tema de Problema con Inner Join y subconsulta en el foro de Mysql en Foros del Web. Buenas a todos es para ver si me podéis ayudar después de mucho calentarme la cabeza pues soy algo novato e echo esta consulta SELECT ...
  #1 (permalink)  
Antiguo 22/02/2013, 11:06
 
Fecha de Ingreso: mayo-2012
Mensajes: 13
Antigüedad: 11 años, 11 meses
Puntos: 0
Problema con Inner Join y subconsulta

Buenas a todos es para ver si me podéis ayudar después de mucho calentarme la cabeza pues soy algo novato e echo esta consulta

SELECT draw_productos.nombre_producto, draw_sorteo.importe_papeleta, draw_sorteo.fecha_fin
FROM draw_productos
INNER JOIN draw_sorteo ON draw_productos.id_sorteo = ANY ( SELECT id_sorteo FROM draw_sorteo WHERE importe_papeleta<='5');

La subconsulta me devuelve varios id y lo que mysql me devuelve despues de todo es esto:

nombre_producto importe_papeleta fecha_fin
Ipad 5 2013-03-31
Asus 5 2013-03-31
Ipad 4 2013-03-21
Asus 4 2013-03-21

pero esta mal porque lo que realmente deberia devolver es:

Ipad 5 2013-03-31
Asus 4 2013-03-21

alguien puede ayudarme a averigar porque me mezcla los datos.

Saludos

Última edición por gnzsoloyo; 22/02/2013 a las 11:08 Razón: SQL sin etiquetar
  #2 (permalink)  
Antiguo 22/02/2013, 11:10
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Problema con Inner Join y subconsulta

Código MySQL:
Ver original
  1. SELECT dp.nombre_producto, ds.importe_papeleta, ds.fecha_fin
  2. FROM draw_productos dp INNER JOIN draw_sorteo ds
  3. dp.id_sorteo ds.id_sorteo
  4. WHERE dp.importe_papeleta<=5;
Francamente, pocas veces he visto un INNER JOIN tan mal escrito.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 22/02/2013, 11:25
 
Fecha de Ingreso: mayo-2012
Mensajes: 13
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: Problema con Inner Join y subconsulta

bueno hay te lo pongo mas estilizado, haber si te sientes mejor.


Código MySQL:
Ver original
  1. SELECT dp.nombre_producto,  ds.importe_papeleta, ds.fecha_fin
  2. FROM draw_productos dp
  3. INNER JOIN draw_sorteo ds  ON dp.id_sorteo= ANY (SELECT id_sorteo FROM draw_sorteo WHERE importe_papeleta<=5);

Última edición por gnzsoloyo; 22/02/2013 a las 11:31 Razón: Consulta mal etiquetada
  #4 (permalink)  
Antiguo 22/02/2013, 11:29
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Problema con Inner Join y subconsulta

El tema no es el estilo. Es que como consulta estaba muy mal escrita. Como si no conocieras el uso de INNER JOIN (y por lo que pones, parece que sigues sin entenderlo).

¿Te molestaste en probar al menos lo que te puse?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 22/02/2013, 11:34
 
Fecha de Ingreso: mayo-2012
Mensajes: 13
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: Problema con Inner Join y subconsulta

pues no entendi lo que querias decir lo siento y si es cierto que el inner join no lo entiendo muy bien pero lo que me dijiste no funciona me da error de syntax en la parte de dp.id_sorteo ds.id_sorteo WHERE ds.importe_papeleta<=5;
  #6 (permalink)  
Antiguo 22/02/2013, 11:44
 
Fecha de Ingreso: mayo-2012
Mensajes: 13
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: Problema con Inner Join y subconsulta

listo ya lo solucione faltaba el ON y un = pero todo perfecto gracias por la respuesta me ha ayudado mucho y siento si la respuesta que te di antes te molesto pero entendi mal . saludos y muchas gracias
  #7 (permalink)  
Antiguo 22/02/2013, 11:45
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Problema con Inner Join y subconsulta

En realidad te da error "cerca de" y no allí, y eso sucede cuando haces Copy+Paste sin mirar lo que pegas.
De haberte fijado con cuidado, habrías notado que le quité el ON al INNER JOIN (lo siento, era una prueba para ver si te dabas cuenta ).
Código MySQL:
Ver original
  1.     dp.nombre_producto,
  2.     ds.importe_papeleta,
  3.     ds.fecha_fin
  4.     draw_productos dp
  5.     INNER JOIN draw_sorteo ds ON dp.id_sorteo ds.id_sorteo
  6.     dp.importe_papeleta<=5;
En definitiva, pasaste la prueba exitosamente...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 22/02/2013, 11:50
 
Fecha de Ingreso: mayo-2012
Mensajes: 13
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: Problema con Inner Join y subconsulta

si como veras arriba me di cuenta es que llevo casi 12 horas sin parar de hacer consultas y de mas cosas y ya la cabeza no me da para mas .saludos y de nuevo gracias por la ayuda.

Etiquetas: join, select, sql, subconsulta
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.