MySQL计数中多表的数据实例

MySQL计数中多表的数据实例
1。实现需求

最近在成绩方面,有很多成绩和维度都涉及到用户数量,如粉丝数达到50位,荣获世界知名称号,用户点赞100次,荣获荣誉大师称号等。

在user_relation表粉丝数

在user_praise表点的数量

根据过去的实践,如果我们需要查询用户的数据,并且因为数据在不同的表中,所以我们经常将多个SQL查询分开,例如:
select count(*)从哪里mysh user_relation other_uid = 123456;
select count(*)从哪里dzss user_praise praise_uid = 123456;
然后查询的数据封装在一个对象,返回给客户端或另做他用,如果你需要统计数据也可以少,但成就系统中,经常有各种各样的成就,我们现在涉及12张彪,如果按照这个查询,然后写12个SQL查询12次,这让人有点不舒服。

两。你能用SQL语句实现它吗

答案是肯定的。

我们可以使用联合操作,比如将多个表与表中的不同数据集成在一起的操作。

首先,您将使用联合重写上述语句:
选择wrzm,mysh,sgbh从(

select count(*)wrzm,0 mysh,0 sgbh从user_witness哪里plan_uid = 123456

联盟的所有

选择0 wrzm,计数(*)mysh,0 sgbh从user_relation哪里other_uid = 123456

联盟的所有

选择0 wrzm,0 mysh,计数(*)从哪里sgbh plan_stage UID = 123456和状态= 1

T);
根据上面的查询,结果如下:
mysql_count_results

我们发现,这样的结果是一位体面的,如果你能把三行wrzm,mysh,和sgbh为表中的行,好的,所以我们可以很自然地想到使用金额(当然我不认为它在开始的时候,提醒我的朋友),所以我们把以上的SQL。
选择和wrzm(wrzm),和(mysh)mysh,和(sgbh)sgbh从(

select count(*)wrzm,0 mysh,0 sgbh从user_witness哪里plan_uid = 123456

联盟的所有

选择0 wrzm,计数(*)mysh,0 sgbh从user_relation哪里other_uid = 123456

联盟的所有

选择0 wrzm,0 mysh,计数(*)从哪里sgbh plan_stage UID = 123456和状态= 1

T);
结果如下:
mysql_count_result_2

在这一点上,我们得到了一个结果,我们希望在SQL语句中实现多个表的计数统计。

三,扩大

我们可以看到,我们所能得到的只是一个用户的数据,但是我们需要计数user_info所有用户。它也很简单。
选择用户名,和wrzm(wrzm),和(mysh)mysh,和(sgbh)sgbh从(

选择plan_uid UID,计数(*)wrzm,0 mysh,0 sgbh从user_witness
集团通过plan_uid

联盟的所有

选择other_uid UID,0 wrzm,计数(*)mysh,0 sgbh从user_relation
集团通过other_uid

联盟的所有

选择wrzm UID,0,0 mysh,计数(*)从哪里sgbh plan_stage状态= 1
集团通过UID

T组的UID);
查询结果如下:
mysql_count_results_3

在这个结果中,如果我们需要查看特定的用户,然后将其添加到结尾。

在UID = 123456,如果你想解决它,然后再通过直接的命令

总结

以上就是本文的全部内容。我希望在您使用或学习MySQL时,本文的内容可以帮助您,如果您有任何问题,可以留言。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部