Mysql
 sql >> Base de données >  >> RDS >> Mysql

comment utiliser la jointure sql dans 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

Ce qui précède vous permettra d'obtenir tous les utilisateurs avec une ligne dans le programme. Ainsi, les utilisateurs avec un compte de 0 ne s'afficheront pas.

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

Cette requête sélectionnera le prénom et le nom de famille de l'utilisateur et comptera le nombre de fois que l'ID utilisateur apparaît dans le tableau de planification.

Il le fait en regroupant par identifiant d'utilisateur.

Et en plus, il utilise une jointure gauche basée sur l'identifiant de l'utilisateur et la date. Il est important de mettre ici la condition de date afin que tous les utilisateurs soient sélectionnés. En effet, la jointure gauche inclura également tous les utilisateurs qui ne correspondent pas. Mais si vous mettez ceci dans la clause where, tous les utilisateurs ne seront pas sélectionnés. En d'autres termes, vous n'obtiendrez pas un compte de zéro pour 'gerry chandan' si vous mettez la condition de date dans la clause where. Au lieu de cela, il serait exclu des résultats.