¿Qué debo hacer si uso JOIN para consultar datos duplicados? ¿Cómo escribir SQL usando estadísticas de recuento?

Ejemplo

Por ejemplo, hay dos tablas tbl_a y tbl_b, como sigue:
tbl_a

identificación nombre
1 bruce
2 Miguel
3 Ángela
tbl_b
identificación ayuda
:-: :-:
1 1
2 1
3 2
4 3
5 3
6 3
Si hacemos una consulta conjunta en este momento nos aparecerán datos duplicados:
select a.id, a.name from tbl_a a 
join tbl_b b on a.id = b.a_id
where

Los datos encontrados de esta manera se verán así:

identificación nombre
1 bruce
1 bruce
2 Miguel
3 Ángela
3 Ángela
3 Ángela

resolver

Hay tres formas de eliminar duplicados:

1. distinto

select distinct a.id, a.name from tbl_a a 
join tbl_b b on a.id = b.a_id
where

2. agrupar por

select a.id, a.name from tbl_a a 
join tbl_b b on a.id = b.a_id
wheregroup by a.id

3. Subconsulta

select a.id, a.name from tbl_a a 
where a.id = (select a_id from tbl_b where a_id = a.id)

¿Qué hacer con el conteo?

Si desea utilizar estadísticas de conteo, simplemente siga el método de escritura inicial y obtendrá demasiadas estadísticas, y distinguir y agrupar por no es fácil de usar en este momento.
Distinto no tiene ningún efecto directamente, pero agrupa por turnos para contar los números de acuerdo con la identificación de tbl_a.
En este momento, solo puede utilizar subconsultas para resolver el problema.

Supongo que te gusta

Origin blog.csdn.net/qq_34972627/article/details/131826730
Recomendado
Clasificación