sql >> Base de Datos >  >> RDS >> Mysql

cómo usar sql join en mysql

    select tu.mr_fname, tu.mr_lname, count(ts.mr_id) as `count` 
from tbl_user tu 
inner join tbl_schedule ts on ts.mr_id = tu.mr_id and 
      ts.sch_date between '2012-01-01' and '2012-08-01' 
group by tu.mr_id

Lo anterior le permitirá obtener todos los usuarios con una fila en la programación. Por lo tanto, los usuarios con un recuento de 0 no aparecerán.

select tu.mr_fname, tu.mr_lname, count(ts.mr_id) as `count` 
from tbl_user tu 
left join tbl_schedule ts on ts.mr_id = tu.mr_id and 
      ts.sch_date between '2012-01-01' and '2012-08-01' 
group by tu.mr_id

Esta consulta seleccionará el nombre y el apellido del usuario y contará la cantidad de veces que la identificación del usuario aparece en la tabla de programación.

Lo hace agrupando por ID de usuario.

Y, además, utiliza una combinación izquierda basada en la identificación y la fecha del usuario. Es importante poner aquí la condición de fecha para que se seleccionen todos los usuarios. Esto se debe a que la combinación izquierda incluirá a todos los usuarios que tampoco coincidieron. Pero si coloca esto en la cláusula where, no se seleccionarán todos los usuarios. En otras palabras, no obtendrá un conteo de cero para 'gerry chandan' si coloca la condición de fecha en la cláusula where. En su lugar, se quedaría fuera de los resultados.