mysql - 我想使用 MySQl 将多个表结果计数合并为一个结果

标签 mysql database optimization logic

我想使用 MySql(查看所需的结果)将多个表的结果计数合并为一个结果,但如果您有任何疑问,我对此感到困惑或对此进行优化,请回答我或帮助我,我自己也尝试过使用 Union 进行此查询,但严重不成功(请参阅查询示例)

需要结果

post  post_comment_likes  post_comments  post_likes
2     0                   3              0

查询

SELECT COUNT(*) AS `post` FROM post WHERE user_id = "123456" UNION
SELECT COUNT(*) AS `post_comment_likes` FROM post_comment_likes WHERE user_id = "123456" UNION 
SELECT COUNT(*) AS `post_comments` FROM post_comments WHERE user_id = "123456" UNION
SELECT COUNT(*) AS `post_likes` FROM post_likes WHERE user_id = "123456" 

最佳答案

set @post = 0;
set @post_comment_likes = 0;
set @post_comments = 0;
Set @post_likes = 0;


 select count(*) into @post from .......;
 select count(*) into @post_comment_likes from ......;
 select count(*) into @post_comments from ......;
 select count(*) into @post_likes from ......;

select (@post + @post_comment_likes + @post_comments + @post_likes) ;

在上面的代码中,@post、@post_comment_likes、@post_comments、@post_likes 是 session 变量,您在它们前面加上'@'字符
使用上面的代码,您可以访问每个表的计数。

关于mysql - 我想使用 MySQl 将多个表结果计数合并为一个结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10346717/

相关文章:

c++ - 使用 PIMPL 习惯用法,实现是否应该始终是类的私有(private)成员?

php - 函数返回 1 而不是实际值

swift - 从 Realm 数据库读取数据 (Swift)

mysql - 我们应该在数据库中做多少工作?

arrays - 算法帮助 : how to divide array into N segments with least possible largest segment (balanced segmenting)

java - 从 LinkedList 最快获取条目/节点

php - MySQL:在获取的列表中突出一些结果,例如第一个

php - datatable 进入 cakephp 连接表

mysql - 如何配置/设计一个每15分钟插入30,000次的表?

database - 数据库表中的动态列与 EAV