sql >> Databasteknik >  >> RDS >> Mysql

hur man använder sql join i 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

Ovanstående kommer att få dig alla användare med en rad i schemat det. Så användare med ett antal 0 kommer inte att dyka upp.

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

Den här frågan kommer att välja användarens förnamn och efternamn och räkna antalet gånger som användar-ID visas i schematabellen.

Den gör detta genom att gruppera efter användar-ID.

Och dessutom använder den en vänsterkoppling baserat på användar-id och datum. Det är viktigt att sätta datumvillkoret här så att alla användare är valda. Detta beror på att den vänstra anslutningen kommer att inkludera alla användare som inte matchade också. Men om du sätter detta på where-klausulen kommer inte alla användare att väljas. Med andra ord, du kommer inte att få noll för 'gerry chandan' om du sätter datumvillkoret i where-satsen. Istället skulle han lämnas utanför resultaten.



  1. Rails/Postgresql SQL-skillnader med datum

  2. Få räkningen av nollor i ett heltal med MySQL

  3. MySQL - Vilken Hash Algo ska jag använda för detta?

  4. Hur omvandlar man vertikal data till horisontell data med SQL?