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

problema con subqueries en MySQL

Estas en el tema de problema con subqueries en MySQL en el foro de Mysql en Foros del Web. Necesito ayuda para saber porque este query no me arroja ningun resultado y no marca error, o de que manera puedo hacer esto de alguna ...
  #1 (permalink)  
Antiguo 15/12/2011, 13:24
Avatar de lohenzoo  
Fecha de Ingreso: septiembre-2011
Ubicación: Ciudad Juarez, Chihuahua
Mensajes: 26
Antigüedad: 12 años, 7 meses
Puntos: 5
problema con subqueries en MySQL

Necesito ayuda para saber porque este query no me arroja ningun resultado y no marca error, o de que manera puedo hacer esto de alguna otra forma.

Lo que intento hacer es traer 3 filas de diferentes secciones. Tengo 29 secciones y requiero traer solo los 3 registros mas recientes de diferentes secciones.

Espero explicarme.

Código PHP:
SELECT t1.headline,t1.images,t1.published,t2.headline,t2.images,t2.published,t3.headline,t3.images,t3.published,t4.headline,t4.images,t4.published,t5.headline,t5.images,t5.published FROM  
(SELECT headline,images,published from articles_norte 
WHERE published 
'2011-12-14 04:30:38' 
AND sectionId between "1" and "8" 
ORDER BY published desc limit 3) as t1,                 
(
SELECT headline,images,published from articles_norte 
WHERE published 
'2011-12-14 04:30:38' 
AND sectionId between "15" and "17" 
ORDER BY published desc limit 3) as t2
(
SELECT headline,images,published from articles_norte 
WHERE published 
'2011-12-14 04:30:38' 
AND sectionId "26" order by published desc limit 3) as t3
(
SELECT headline,images,published from articles_norte 
WHERE published 
'2011-12-14 04:30:38' and sectionId "27" 
ORDER BY published desc limit 3) as t4
(
SELECT title as headline,image as images,publishedDate as published from gallery_v1 WHERE publishedDate '2011-12-14' 
ORDER BY publishedDate desc limit 3) as t5
  #2 (permalink)  
Antiguo 15/12/2011, 14:23
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 subqueries en MySQL

La coma (,) genera un INNER JOIN implícito cuando los campos invocados tienen el mismo nombre en todas las tablas.
Ese sería tu caso.
El problema es que el INNER JOIN devuelve sólo aquellos registros de todas las tablas tales que coincidan en su valor donde los campos tienen el mismo nombre.
Ahora bien, como todos los registros que estás buscando de cada segmento, contienen valores diferentes al resto en al menos un campo (en todos, en realidad), esa consulta tal y como la haces, jamás te debería devolver datos.

¿Se entiende el problema?

Por otro lado, tendrás problemas programáticos, porque en el encabezado, esa consulta devolverá cinco veces los mismos nombres de columna... cosa que no puede administrar ningún conector.

Además, tu hablas de "diferentes secciones", pero en cada subconsulta estás buscando las mismas columnas sólo que en un rango distinto. Si son diferentes "secciones", da la impresión de que tu base tiene muy erios problema de diseño, porque una estructura de "secciones" de publicaciones requeriría al menos tres tablas para definirse: La publicación, la Sección o Categoría, y posiblemente una tabla que relacione ambas, si una publicación puede relacionarse con más de una categoría o Sección.

¿Podrías describir un poco mejor y más detalladamente tu modelo de tablas. Puede que si entendemos lo que tienes, podamos darte mejores soluciones.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: subquery
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 14:49.