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

Contar las apariciones de identificadores de una tabla en otra tabla

Estas en el tema de Contar las apariciones de identificadores de una tabla en otra tabla en el foro de Mysql en Foros del Web. 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. ...
  #1 (permalink)  
Antiguo 31/03/2007, 13:13
Avatar de dayer  
Fecha de Ingreso: febrero-2004
Mensajes: 142
Antigüedad: 15 años, 9 meses
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
  #2 (permalink)  
Antiguo 01/04/2007, 16:09
 
Fecha de Ingreso: enero-2004
Mensajes: 63
Antigüedad: 15 años, 10 meses
Puntos: 0
Re: Contar las apariciones de identificadores de una tabla en otra tabla

Hola,

La consulta anterior te funcionará si utilizas un "IN".
Código:
SELECT COUNT(elementos.materia_id) FROM elementos WHERE elementos.materia_id IN(SELECT materia_id FROM materias)
Un saludo
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 01:33.