mysql 复合主键 group by 查询之后 如何 having count

2018-02-13 18:14:08 +08:00
 longnight0119

mysql 表 table PK(id,type) 关联表 table1 (多列+table.id+table.type) 在 table1 中 执行查询 select * from table1 group by id,type having count(querySql)=2 请问这个 querySql 该怎么写

4085 次点击
所在节点    MySQL
6 条回复
longnight0119
2018-02-13 18:18:16 +08:00
我目前用的是 having count(concat(id,type))=2 这样的方式 有没有更好的方式
akira
2018-02-14 01:27:55 +08:00
select id, `type`, ... , count(1) `c` from table1
where ...
group by id, `type`
having `c` =2
usedname
2018-02-14 09:13:36 +08:00
ID type 做复合主键也是清奇
longnight0119
2018-02-14 10:32:09 +08:00
@akira 嗯 这个也不错 我之前在 子查询中 用到了 新增列 在标识 数据来自哪个表 我倒是忘了 可以复用这种方式
longnight0119
2018-02-14 10:32:50 +08:00
@usedname 多系统的应用 没有办法中的办法
longnight0119
2018-02-14 10:48:33 +08:00
@akira 不行 count ( 1 ) c 后 c 的列值都是 1 两个表 union all 后 再用 count()聚合函数 只有两条数据

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/430613

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX