日期:2014-05-17  浏览次数:20772 次

大神们求助啊。这样的关联查询如何实现啊。join了一天了还没join出来。。。。
本帖最后由 q2979978 于 2012-11-06 15:14:55 编辑 比如我现在有三个表,A: id  name desc等等字段  B:aid   detail    C:aid    detail
现在我想通过一个id集合得到每条A中的数据加上两个字段,就是aid在B中的出现的次数和C中出现的次数
得到的结果例如
 id       name      desc     countB    countC
1001      一号    一号统计      2         0
1002      二号    二号统计      3         2

大神们快来帮帮我吧~~~~
------最佳解决方案--------------------

 SELECT A.ID, A.NAME, A.DESC
   FROM A
   LEFT OUTER JOIN (SELECT AID, COUNT(*) BCOUNT FROM B GROUP BY B.AID) BB
     ON A.ID = BB.AID
   LEFT OUTER JOIN (SELECT AID, COUNT(*) CCOUNT FROM C GROUP BY C.AID) CC
     ON A.ID = CC.AID

------其他解决方案--------------------
SELECT A.ID, A.NAME, A.DESC, B.COUNTB, C.COUNTC
  FROM A, B, C
 WHERE A.ID = B.AID
   AND A.ID = C.AID

------其他解决方案--------------------

SELECT A.ID, A.NAME, A.DESC, BB.BCOUNT, CC.CCOUNT
   FROM A
   LEFT OUTER JOIN (SELECT AID, COUNT(*) BCOUNT FROM B GROUP BY B.AID) BB
     ON A.ID = BB.AID
   LEFT OUTER JOIN (SELECT AID, COUNT(*) CCOUNT FROM C GROUP BY C.AID) CC
     ON A.ID = CC.AID

少了点东西
------其他解决方案--------------------
引用:
SQL code1234567SELECT A.ID, A.NAME, A.DESC, BB.BCOUNT, CC.CCOUNT   FROM A   LEFT OUTER JOIN (SELECT AID, COUNT(*) BCOUNT FROM B GROUP BY B.AID) BB     ON A.ID = BB.AID   LEFT OUTER JOIN (……
少了什么啊大神,我先去试试。。
------其他解决方案--------------------
搞定。。。3q3q3q3q~~~

引用:
SQL code1234567SELECT A.ID, A.NAME, A.DESC, BB.BCOUNT, CC.CCOUNT   FROM A   LEFT OUTER JOIN (SELECT AID, COUNT(*) BCOUNT FROM B GROUP BY B.AID) BB     ON A.ID = BB.AID   LEFT OUTER JOIN (……