1. 程式人生 > >查詢兩張表中關聯到的資料的和

查詢兩張表中關聯到的資料的和

需要查詢出A和B表有 id 關聯欄位, 是一對多關係,需要在查詢中增加一列,查詢到A中的資料各關聯了B的多少份資料.

思路,使用group by 和 count 查詢出這些關聯資料的份數. 然後作為一箇中間表,再與A表進行 left join.

select a.*, v.sealSum from A a LEFT JOIN (
  select aa.id aaId,count(b.id) as sealSum from A aa
    LEFT JOIN B b
      on aa.id = b.business_id
        group by aa.id
  ) v on a.id = v.aaId

注意, 此處count()是有講究的,因為主表是A, count(0)查的是以A為主表的條數. 我們此處需要關注的是A中關聯了多少條B表中資料.故應該count(b.id)  B表中的某一列