Mysql
 sql >> Database >  >> RDS >> Mysql

come usare sql join in 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

Quanto sopra ti porterà tutti gli utenti con una riga nella pianificazione. Quindi gli utenti con un conteggio pari a 0 non verranno visualizzati.

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

Questa query selezionerà il nome e il cognome dell'utente e conterà il numero di volte in cui l'ID utente appare nella tabella di pianificazione.

Lo fa raggruppando per ID utente.

Inoltre, utilizza un join sinistro in base all'ID utente e alla data. È importante inserire qui la condizione della data in modo che tutti gli utenti siano selezionati. Questo perché il join sinistro includerà anche tutti gli utenti che non corrispondono. Ma se lo inserisci nella clausola where, tutti gli utenti non verrebbero selezionati. In altre parole, non otterrai un conteggio pari a zero per "gerry chandan" se inserisci la condizione della data nella clausola where. Invece sarebbe stato escluso dai risultati.