sql groupby 得到数量的问题

图片描述
如图,我现在有3张表,tbh与toi是一对一的关系,toi与togi是一对多的关系。
现在我查询(现在的情况是toi的某一行对应了togi的2行)图片描述
直接select*得到的只有一行数据,但是
当我select count()得到的是2,这是怎么回事?怎么样写才能让count(或者别的列) 得到是1呢?

====================================
因为我除了行数还需要得到别的值,如果单单是行数的话,我可以先select * 然后到java里得到size,我现在是想一次性既得到别的值也想得到行数

阅读 2.9k
2 个回答

得到一行是因为你用了group by,count是聚合函数是计算行数,group by不使用聚合函数只取第一行数据

===============================正确答案==================================
这种可以先根据条件查询togi得出符合条件的结果,去重后得到toi的条件,然后才去查询toi与tbh

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题