表A与表B,表A内有字段aaa、bbb、ccc,表B内有字段ddd、eee、fff。
要求在A.aaa= '123 '和B.ddd= '456 '的两个结果中查询,条件为A.bbb=B.eee,结果列出A.aaa、A.bbb、A.ccc、B.ddd、B.eee、B.fff及重复记录的数目(就是说有几条A.bbb=B.eee的结果)这七项,结果按照重复记录的数目从大往小排列。
答案:SELECT A.aaa,A.bbb,A.ccc,B.ddd,B.eee,B.fff,CNT=COUNT(1)
FROM A INNER JOIN B ON A.bbb=B.eee
WHERE A.aaa= '123 ' and B.ddd= '456 '
GROUP BY A.aaa,A.bbb,A.ccc,B.ddd,B.eee,B.fff
ORDER BY CNT DESC
其中重复数目CNT是A.bbb=B.eee分别在A和B中记录的乘积,在实际使用中发现这个效果不理想,现在想在查询结果中分别列出A.bbb=B.eee在A和B的记录数,应该怎么样改。
------解决方案--------------------
可以换一个思路,分两步查询,然后在客户端组织显示结果。
不一定非要在一步上吊死啊。