首页 新闻 会员 周边 捐助

大牛们 求个sql语句

0
悬赏园豆:5 [已解决问题] 解决于 2017-12-15 12:07
  大牛们 求个sql语句
我现在有表A(id),表B(userID,CREATETIME)  B的userid是A的id外键,B表中存在多个相同的userid,
我现在要查询A.id,b.createtime,(userid出现的次数)  三个字段,查询的数据不能有重复的userid 或者 A.id出现 
 
留恋丶一刻的主页 留恋丶一刻 | 初学一级 | 园豆:61
提问于:2016-05-10 15:28
< >
分享
最佳答案
0
select A.guid,a.createtime,b.createtime as createtimes from A as a LEFT JOIN B as b on a.guid=b.guid GROUP BY A.guid;
//根据guid分组一下。

 

收获园豆:5
大楚打码人 | 老鸟四级 |园豆:4313 | 2016-05-10 15:40

不行呀 !!! b.A.guid  这个看不懂   

留恋丶一刻 | 园豆:61 (初学一级) | 2016-05-10 16:06

@留恋丶一刻: 两个表连接,然后就是根据表B的guid分组,group by b.guid就行

心怀宇宙 | 园豆:643 (小虾三级) | 2016-05-10 16:12

@双子rain:  再看看问题,    我修改了一下 ! 

留恋丶一刻 | 园豆:61 (初学一级) | 2016-05-10 16:16

@留恋丶一刻: select a.guid,b.createtime,count(b.userid) as totalnum from A as a LEFT JOIN B as b on a.guid=b.userid group by b.userid,a.guid,b.createtime,b.userid

心怀宇宙 | 园豆:643 (小虾三级) | 2016-05-10 16:21

@双子rain: 大哥 ,这个真不行,要是有这么简单我就不来问了!    谢谢你了  !

留恋丶一刻 | 园豆:61 (初学一级) | 2016-05-10 16:24

@留恋丶一刻: 你在试试吧,这个思路应该是正确的,可能哪写的不对。

心怀宇宙 | 园豆:643 (小虾三级) | 2016-05-10 16:27

@双子rain: 这个语句我刚开始就已经写了,这个已经把时间和userid进行分组了  我这样每个userid对应的时间都是不一样的

留恋丶一刻 | 园豆:61 (初学一级) | 2016-05-10 16:28

@留恋丶一刻: 根据a.guid分组一下就行,既然B里的guid是外键。若有其它的重复项依然记得加入分组,即可。没那么难吧。

大楚打码人 | 园豆:4313 (老鸟四级) | 2016-05-10 16:29

@留恋丶一刻: 如果userid一样时间不一样,那么查询结果要怎么显示呢?

心怀宇宙 | 园豆:643 (小虾三级) | 2016-05-10 16:48

@留恋丶一刻: 下面这样查询的是你要的结果吧

心怀宇宙 | 园豆:643 (小虾三级) | 2016-05-10 16:52

@双子rain:   大哥,你牛 。  我服,我真心服!

留恋丶一刻 | 园豆:61 (初学一级) | 2016-05-10 17:01
其他回答(3)
2

需求不合理,问你的老师去。

爱编程的大叔 | 园豆:30844 (高人七级) | 2016-05-10 15:39

对呀   我也觉得呀!  根本无解

支持(0) 反对(0) 留恋丶一刻 | 园豆:61 (初学一级) | 2016-05-10 15:40
0

select A.id,B.createtime,COUNT(B.userid) as Times from A LEFT JOIN B on A.id=b.id
GROUP BY A.id,B.createtime;

chenaran | 园豆:283 (菜鸟二级) | 2016-05-27 16:46
0

  select t1.id,t2.createtime,isnull (t2.cont ,0)total from A t1
  left join (  select COUNT(1) cont, userid , max(createtime) creatatime from B group by userid)t2 on t1.id=t2.userid

Kiss丿残阳 | 园豆:190 (初学一级) | 2017-04-28 11:01
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册