查询二个表中的相同字段的值并计数每个值对应表的记录数(求助)

h20010826t 2011-10-26 02:32:26
a表数据
id sessionid
1 a
2 a
3 b
4 b

b表 数据
id sessionid
1 a
2 b
3 c

要输出
sessionid count_a count_b
a 2 1
b 2 1
c 0 1
...全文
80 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
h20010826t 2011-10-26
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wwwwb 的回复:]
select '2',* from b
表名写错了
[/Quote]

OK 对了 谢谢哈
wwwwb 2011-10-26
  • 打赏
  • 举报
回复
select '2',* from b
表名写错了
h20010826t 2011-10-26
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wwwwb 的回复:]

引用 2 楼 h20010826t 的回复:
select '1' as bz,* from a 这句是什么意思? 有错的吧?

测试一下不就知道了,将A、B两表的记录区别开
[/Quote]
bz=2好像永远不可能
wwwwb 2011-10-26
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 h20010826t 的回复:]
select '1' as bz,* from a 这句是什么意思? 有错的吧?
[/Quote]
测试一下不就知道了,将A、B两表的记录区别开
h20010826t 2011-10-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wwwwb 的回复:]

select * from (
select sessionid from a
union
select sessionid from b) c
left join
(
select sessionid,sum(if(bz='1',1,0)) as ac,sum(if(bz='2',1,0)) as bc from (
select '1' as bz,* from a
uni……
[/Quote]
红色的那句话好像有错...
h20010826t 2011-10-26
  • 打赏
  • 举报
回复
select '1' as bz,* from a 这句是什么意思? 有错的吧?
wwwwb 2011-10-26
  • 打赏
  • 举报
回复
select * from (
select sessionid from a
union
select sessionid from b) c
left join
(
select sessionid,sum(if(bz='1',1,0)) as ac,sum(if(bz='2',1,0)) as bc from (
select '1' as bz,* from a
union
select '2',* from a) group by sessionid) d
on c.sessionid=d.sessionid

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧