mysql - 对不同表中的多列进行计数和求和

标签 mysql sql laravel laravel-5

我有以下表格:

表用户

| id | profile_img |
--------------------
|   21|     name.img|
|   22|     name.img|
|   33|     name.img|

表 user_translations

|id | user_id |first_name |
--------------------------
|  1|    21   |  panais |
|  2|    22   |  andreas|
|  3|    33   |  minas  | 

表关于

| id | user_id |
----------------
|   1|    33   |
|   2|    22   |
|   3|    21   |

table 上的东西

| id | user_id |
----------------
|   1|    33   |
|   2|    22   |
|   3|    21   |
|   4|    21   |
|   5|    33   |

每个用户都可以写入

about articles to about table and thing articles to things table

我想获取所有用户的文章总数。换句话说,我想从上面的 user_translations 表中获取 minas 总共写了 3 篇文章。

感谢任何帮助。

已更新

我已经发布了答案

最佳答案

我无法帮助您使用 Laravel 的查询构建器,但在纯 mysql 中,您需要的查询类似于:

SELECT ut.`firstname`,ut.`lastname`,COUNT( DISTINCT(a.`id`) ) + COUNT( DISTINCT(t.`id`) ) as total_articles
FROM `user_translations` ut
INNER JOIN `about` a ON a.`user_id`=ut.`user_id`
INNER JOIN `things` t ON t.`user_id`=a.`user_id`
GROUP BY ut.`user_id`

所以也许你可以使用DB::raw并得到你想要的

关于mysql - 对不同表中的多列进行计数和求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38722602/

相关文章:

mysql - 从备份恢复数据时自动增量主字段会发生什么

php - 如何在 SQL 中的代码点火器中应用 2 OR 和 1 AND 条件?

python - 如何在 sqlalchemy 中创建基于文字的查询?

php - 在日期时间列中获取过去 8 小时的数据 Eloquent

laravel - Laravel 4 中的多语言 URL

javascript - 如何更新动态 PHP 表的每一行

php - 执行sql文件时出错(ERROR 1114 mysql表已满)

SQL关系数据库设计

mysql - 尝试与自然连接生成的相同关系进行比较时出现语法错误

php - 如何更改流明数据库时区?