嗨,在这种情况下,我很难获得正确的查询。
我如何让所有拥有3个客户的用户。
Costumers表:
/cust
查询中的预期结果应该是ID为1和2的用户。
我已经尝试过在“ Laravel”中使用“ whereRaw”,但我无法理解。
答案 0 :(得分:1)
您可以将GROUP BY
与HAVING
子句一起用于条件过滤:
要查找某个用户的客户总数,我们可以使用COUNT(DISTINCT customer_id)
来计算唯一的客户数。
SELECT user_id
FROM your_table
GROUP BY user_id
HAVING COUNT(DISTINCT customer_id) = 3
注意:
(user_id, customer_id)
的组合为UNIQUE
;那么您可以使用COUNT(*)
代替COUNT(DISTINCT customer_id)
>= 3
。答案 1 :(得分:1)
使用groupBy()和havingRaw()
User::select(['user_id'])
->groupBy('user_id')
->havingRaw('COUNT(DISTINCT customer_id) >= 3')
->get();
这将返回具有3个或更多客户ID的用户ID