首页 > 解决方案 > MySQL & Eloquent 查询

问题描述

我有两张桌子:

用户 - id、姓名、电子邮件、名称、类型

请求- id、产品、用户

在“请求”表字段中,用户是来自“用户”表的外键。

现在我想计算每个用户在 users.type 为 3 或 6 的情况下发出的请求以及用户数据。

输出数据应该有这些字段 users.id、users.name、users.email、users.designation、users.type、count。

请帮助我编写 MYSQL 查询和 Eloquent 查询(如果可能)。请查看表格数据以获得更多理解。

标签: phplaraveleloquent

解决方案


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()

推荐阅读