Ver Mensaje Individual
  #4 (permalink)  
Antiguo 14/01/2010, 07:07
Avatar de gnzsoloyo
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, 5 meses
Puntos: 2658
Respuesta: Me cuenta cualquier cosa

- Tanto en el ORDER BY y en el GROUP BY, se pueden usar los alias definidos en el SELECT. En tu caso eso puede ser la razón por la que no está devolviendo datos.
- Los paréntesis en el FROM pueden resultar redundantes, porque esa segmentación es el que usa realmente MySQL, por lo cual ponerlos o no ponerlos es irrelevante. Debería funcionar de cualquier forma.
- Igualar los usuarios para mostrar el contenido de artículos en una sentencia con agrupamiento es fútil, porque te mostrará solamente el contenido del primer registro de ese usuario y no todos. Si esa es tu intención, bien, sino, se puede eliminar.
- Para definir mejor las relaciones entre las tablas nos depberías dar la estructura y dependencias de las mismas, sino, estamos trabajando algo en el aire, porque a simple vista no se entiende bien la relación entre los usuarios y el resto.
- El orden de las tablas parece no estar bien. Si lo que quieres es un listado de los artículos enviados por los usuarios, la tabla usuarios debería ser la primera, y el resto según la dependencia de datos, usando LEFT JOIN y no INNER JOIN.

Simplificando un poco lo propuesto por quimfv, andaría por acá:
Código MySQL:
Ver original
  1.   og.nid cat_id,
  2.   MAX(node.nid) art_id,
  3.   count(node.nid) cantidad
  4.   og
  5.   LEFT JOIN og_ancestry ON og_ancestry.group_nid = og.nid
  6.   LEFT JOIN node ON node.nid = og.nid
  7.   LEFT JOIN term_node tn ON tn.nid=og.nid
  8.   (node.type = 'articulo' OR node.type='articulos')
  9.   AND node.status=1
  10.   AND tn.tid=1
  11. GROUP BY og.nid
  12. ORDER BY art_id DESC;

Pero, insisto, para hacerlo bien necesitaríamos saber cómo es la dependencia de las tablas entre si.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)