php - MySQL & Eloquent 查询
问题描述
我有两张桌子:
用户 - id、姓名、电子邮件、名称、类型
请求- id、产品、用户
在“请求”表字段中,用户是来自“用户”表的外键。
现在我想计算每个用户在 users.type 为 3 或 6 的情况下发出的请求以及用户数据。
输出数据应该有这些字段 users.id、users.name、users.email、users.designation、users.type、count。
请帮助我编写 MYSQL 查询和 Eloquent 查询(如果可能)。请查看表格数据以获得更多理解。
解决方案
SQL 非常简单:
SELECT u.id, u.name, u.email, u.designation, u.type, count(r.id)
FROM users AS u
JOIN Request AS r ON r.user_id = u.id
WHERE u.type IN (3,6)
GROUP BY u.id, u.name, u.email, u.designation, u.type
要使用 Eloquent 实现这一点,您的User
模型需要与Request
. 我假设requests
:
$usersWithRequestCount = \App\User::withCount('requests')->whereIn('types',[3,6])->get()
推荐阅读
- wso2 - 有没有办法更新正在运行的 Siddhi 应用程序
- python - Asyncio:当我们需要使用异步方法时,如何在 __del__ 方法中清理类的实例
- python - Groupby + 来自另一列的条件以创建新列
- javascript - 了解屏幕外画布以提高性能
- html - 为什么 z-index 不适用于绝对位置的元素?
- python - 我无法让组列表通过它迭代我的方法(pygame.sprite)
- assembly - 两个逻辑运算之间的异或运算
- python-3.x - 如何为空的numpy数组赋值
- reactjs - 浏览器返回在 reactjs 应用程序中不起作用
- gnuplot - 错误:“需要完整使用 x 时间数据的规范”