永发信息网

mysql 两个表 比较复杂的计算。

答案:4  悬赏:30  手机版
解决时间 2021-01-03 00:00
两个表

a.表
字段 aid aneirong ccid ddid
1 西瓜 3254 32
2 苹果 2412 32
3 黄瓜 2769 44
4 青菜 2412 32

...........
b.表
字段 bid bneirong ccid
1 西瓜 3241
2 苹果 2412
3 黄瓜 8974

根据两个表

要得到,a表.ddid = 32 时 对应的ccid在b表里面出现了几次

就上面的举例 可以看出结果是 count(*) as 等于1 只有一个2412

数据量比较大 求sql语句
最佳答案
楼主不是只要示数量就可以吗,楼上的写的我表示不理解,下面的语句应该可以满足
SELECt COUNT(DISTINCT b.bid ) FROM a INNER JOIN b ON a.ccid=b.ccid WHERe a.ddid=32
全部回答
你可以先查询B表中每个Bneirong出现的次数,在关联查询 select t1.ddid,t1.aneirong ,t2.次数 from A t1, (select bneirong,count(*) as 次数 from b group by bneirong) t2 where t1.aneirong=t2.bneirong
select a.uname as aname, b.uname as bname from a full outer join b on a.uid = b.uid where a.uid is null or b.uid is null 注意: 1. 用 a.uid<>b.uid 做条件是错的,会得到大量的垃圾数据。 2. 这个查询不需要很多内存,只有数据库能正常运行,这个查询应该很快。 3. 这个查询应该用 outer join (最多6万) 而不是 cross join (9亿)
一楼连接的字段只有一个,我觉得不保险,改为: select aneirong,cout(*) as 次数 from a left join ( select ccid,count(*) as cs from b group by bneirong,ccid ) t on a.ccid=t.ccid and a.aneirong=t.bneirong where a.ddid=32 group by aneirong 不知道这是不是你想要的结果,你要求的内容太简短了。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
《锦绣未央》大结局李常茹是怎么死的
我想在安康市近内开家本地土特产不知前景如何
你告诉人们,人生的色彩是何等丰富,人生的旅
税法粮食白酒
人生两字合一起是什么字
14. I’m well again, I can go on with my
剑豪选什么远古套好啊
我的世界怎么去雪地
女的说能不能给我点私人空间,是什么意思?
One of our rules is that every student wea
养鸭子利润怎么样,合同养鸭靠得住吗?(有哪
蜀门赤鳞杆任务(残损的法宝)是做到哪里了?号
刹月华人设里有伞和扇子吗
英语我很关心你怎么说
泰州特产有哪些图片
推荐资讯
已经彼此可见的留言可以再取消彼此可见嘛?
北美洲气候复杂多样的原因是
安德拉 转向漏油能修复不?
如图所示,平面直角坐标系中,直线AB与x轴、y轴
A、B、C三物体同时同地出发做直线运动,它们
哈士奇公狗发情期注意哪些
求老友记中ross和Chandler去退订健身卡的视频
荀子在《劝学》中说:南方有鸟焉,名有(曰)蒙
用电损耗怎么算
如图所示,通电螺线管周围能自由转动的小磁针
黄眀昊在哪个综艺上穿了女装
交通事故一般开庭几次
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?