我現(xiàn)在有兩個表parent和child,根據(jù)parent.id等于child.parentId一對多關(guān)聯(lián)。child表有一字段status,取值 0或1或2?,F(xiàn)在我想要一起查詢出每條parent的信息以及該條對應(yīng)的child狀態(tài)status分別為0、1、2的記錄個數(shù)。這個個數(shù)我不知道怎么取,比如下面是取parent信息和狀態(tài)為0的child個數(shù),但只能取到一種情況,不能同時取到三種狀態(tài)的個數(shù)。SELECT p. * , count ( * ) FROM parent p,child cWHERE c.parentid =p.idAND c.status= 0GROUP BY c.parentid;要同時取到三種狀態(tài)就要繼續(xù)加聯(lián)表SELECT * FROM (SELECT p. * , count ( * ) c1 ,p.ID aidFROM parent p,child cWHERE c.parentid =p.idAND c.STATUS = 0GROUP BY c.parentid) a ,(SELECT count ( * ) c2 ,p.ID bidFROM parent p,child cWHERE c.parentid =p.idAND c.STATUS = 1GROUP BY c.parentid) b ,(SELECT count ( * ) c3 ,p.ID cidFROM parent p,child cWHERE c.parentid =p.idAND c.STATUS = 2GROUP BY c.parentid) cWHERE a.aid = b.bid AND c.cid = a.aid這樣sql會很長且低效。并且現(xiàn)在只有三個狀態(tài),要是多了更長,后面會寫在mybatis的xml里很難看。有沒有更好的寫法?
添加回答
舉報
0/150
提交
取消