Consulta JOIN sobre la misma tabla

Tengo una tabla en MySQL que guarda los datos de personas; como lo que se pretende es poder identificar familias existe un campo llamado jefe_hogar el cual guarda un id_persona para así poder identificar los miembros de una misma familia.
Hice una consulta como la siguiente:
SELECT personas.numero_identif, personas.nombres, personas.apellidos, jefe.nombres, jefe.apellidos
FROM personas
INNER JOIN personas jefe ON personas.numero_identif = jefe.jefe_hogar
ORDER BY personas.numero_identif
Esta consulta me repite el jefe_hogar tantas veces como miembros existen.
¿Cómo modificaría la consulta de tal manera que me muestre los datos del jefe_hogar y el número de integrantes de cada familia?
¿Cómo incluir el COUNT() en este tipo de consultas?

2 Respuestas

Respuesta
1
Si lo que deseas es contar solamente debes incluirlo así:
SELECT personas.numero_identif, personas.nombres, personas.apellidos, jefe.nombres, jefe.apellidos, count(CAMPO A CONTAR)
FROM personas
INNER JOIN personas jefe ON personas.numero_identif = jefe.jefe_hogar
ORDER BY personas.numero_identif
Y para mostrar datos del jefe de hogar, debes ingresar las columnas que estén en la respectiva tabla de "jefe"
Respuesta
1
Te pongo un fragmento de SQL que puede ayudarte:
Count(expr)
En donde expr contiene el nombre del campo que desea contar. Los operandos de expr pueden incluir el nombre
de un campo de una tabla, una constante o una función (la cual puede ser intrínseca o definida por el usuario pero
no otras de las funciones agregadas de SQL). Puede contar cualquier tipo de datos incluso texto.
Aunque expr puede realizar un cálculo sobre un campo, Count simplemente cuenta el número de registros sin
tener en cuenta
qué valores se almacenan en los registros. La función Count no cuenta los registros que tienen campos null a
menos que expr sea el carácter comodín asterisco (*). Si utiliza un asterisco, Count calcula el número total de
registros, incluyendo aquellos que contienen campos null. Count(*) es considerablemente más rápida que
Count(Campo). No se debe poner el asterisco entre dobles comillas ('*').
SELECT Count(*) AS Total FROM Pedidos;

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas