[英]Select from table where count from another related table is only one
我有两个表都通过 id 相关......我想要使用 eloquent 或 mysql 语句的单个查询在下面执行......:
clients
-----------
| Id | name |
-----------
| 1 | name1|
-----------
| 2 | name2|
-----------
| 3 | name3|
-----------
requests
----------------
| Id | client_id |
----------------
| 1 | 1 |
----------------
| 2 | 1 |
----------------
| 3 | 2 |
----------------
| 4 | 3 |
----------------
| 5 | 3 |
----------------
我只希望结果只显示只有一个请求的客户
result
----------------
| Id | name |
----------------
| 2 | name2 |
----------------
如何在 mysql 或 laravel elquent 中制作它????
您可以尝试以下操作
DB::table('requests')->groupBy('client_id')->havingRaw('COUNT(*) = 1')->get();
假设你有工作雄辩的模型和关系,你可以这样做:
Client::has('requests', '=', 1)->get();
下一个查询应该可以解决您的问题:
SELECT
clients.Id,
clients.name
FROM requests
JOIN clients ON clients.Id = requests.client_id
GROUP BY clients.Id, clients.name
HAVING COUNT(*) = 1
;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.