Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/03/2007, 12:13
Avatar de dayer
dayer
 
Fecha de Ingreso: febrero-2004
Mensajes: 142
Antigüedad: 20 años, 1 mes
Puntos: 0
Busqueda Contar las apariciones de identificadores de una tabla en otra tabla

Hola a todos. Resulta que no sé muy bien cómo contar el número de apariciones de los registros de una tabla en otra. Me explico.
Tengo dos tablas: materias, elementos.
materias
  • materia_id
  • nombre
  • ...
elementos
  • id
  • materia_id
  • ...

Entonces mi objetivo que persigo es mostrar una lista de los registros que tiene la tabla "materias", acompañada del número de veces que aparece cada registro de "materias", en la tabla "elmentos", combinando PHP y SQL.
A voz de pronto se me ha ocurrido hacer una consulta para obtejer los IDentificadores materia_id de "materias", y luego hacer una consulta a "elementos" contando el número de apariciones que tiene cada uno. Pero claro, entonces a mas registros en "materias" la aplicación tiene que hacer más consultas a "elementos", o sea, un número de consultas variable en función de cuantas filas tenga "materias".
Entonces después he pensado en una subconsulta del tipo:
Código:
SELECT count(elementos.materia_id) from elementos where elementos.materia_id = (select materia_id from materias)
pero claro, esto me falla porque me dice que la subconsulta devuelve más de una fila

¿A alguien se le ocurre una manera más eficiente que la de hacer varias consultas, en función del total de registros que tenga la tabla "materias"?
Un saludo de antemano.
__________________
No Ðejes Para Mañana Monte Que Puedas Escalar Hoy
Cartagena
El Historias