Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/09/2007, 05:16
Ariel_Ska
 
Fecha de Ingreso: julio-2006
Mensajes: 25
Antigüedad: 17 años, 9 meses
Puntos: 1
Comparar dos tablas o arrays y mostrar contenido de una!

Se trata de un Catalogo, tengo una tabla categorías y otra catalogo, en categorías guardo los nombres de ellas y subcategorías además, de sus índices.
Quiero mostrar las subcategorias en pantalla y que a su vez me diga si tienen productos dentro o no.

el problema es este:

tabla1 (Catalogo):
"SELECT Categoria, COUNT(*) AS subtotal FROM Catalogo GROUP BY Categoria";

la consulta devuelve una tabla de este tipo

Categoria - Subtotal
25 - 5
12 - 4
13 -8
16 -6

(Significa por ejemplo que la categoría 25 aparece 5 veces en el catalogo, y la 12, 4 veces)

ahora hago una consulta a otra tabla que contiene los mismos números de categorias, más categorías que no están en el catalogo:

Tabla2 (Categorias)
"SELECT id_categoria, nombre_categoria FROM TablaCategorias"

lo que muestra
id_categoria - nombre_categoria
12 - zapatos
13 - chanclas
14 - sombreros
20 - Calcetines
25 - etc...
16 - etc....

ahora quiero recorrer esta última tabla, y comparar si coinciden id_categoria y Categoría, si es así añadir el Subtotal en la salida, es decir así:

12 - zapatos (4)
13 - chanclas (8)
14 - sombreros (0)
20 - Calcetines (0)
25 - etc... (5)
16 - etc.... (6)

Véase que se muestra un (0) cuando no existe coincidencia.

Yo sé hacerlo de forma que solo se muestren las categorías con elementos en el catalogo, pero este otro método permite ver al usuario que categorías existen pero no tienen valores en el catalogo

intente un método de anidar dos bucles, pero me salían los resultados repetidos y muchas más veces, imaginaros que son dos arrays y que los quiero comparar, la idea es esa, adiós al SQL.... la consulta ya fue realizada y estos son sus valores.

Es muy fácil explicarlo, pero no me doy cuenta como se hace... quizá alguien ya tiene experiencia con este tipo de cosas, gracias :)