Mysql 拉威尔的原始查询在哪里?

Mysql 拉威尔的原始查询在哪里?,mysql,laravel,Mysql,Laravel,嗨,我很难找到这个场景的正确查询 如何获得3个客户的所有用户 SELECT user_id FROM your_table GROUP BY user_id HAVING COUNT(DISTINCT customer_id) = 3 客户表: userid | customerid ______________________ 1 | 10 1 | 11 1 | 12 2 | 13 2 | 22 2 | 23 1

嗨,我很难找到这个场景的正确查询

如何获得3个客户的所有用户

SELECT user_id
FROM your_table
GROUP BY user_id
HAVING COUNT(DISTINCT customer_id) = 3 
客户表:

userid  | customerid
______________________

1       | 10
1       | 11
1       | 12
2       | 13
2       | 22
2       | 23
1       | 24
3       | 50
查询中的预期结果应该是id为1和2的用户


我在“Laravel”中尝试了“whereRaw”,但我就是搞不懂。

您可以使用
分组依据
和条件筛选,使用
HAVING
子句:

要查找一个用户的客户总数,我们可以使用
COUNT(不同的客户\u id)
来计算唯一的客户数

SELECT user_id
FROM your_table
GROUP BY user_id
HAVING COUNT(DISTINCT customer_id) = 3 
注意:

  • 如果表结构确保
    (用户id,客户id)
    组合是
    唯一的
    ;然后您可以使用
    COUNT(*)
    而不是
    COUNT(不同的客户id)
  • 如果您正在寻找至少有三个客户的用户,那么您可以在条件中使用
    >=3

您可以使用
GROUP BY
和使用
HAVING
子句的条件筛选:

要查找一个用户的客户总数,我们可以使用
COUNT(不同的客户\u id)
来计算唯一的客户数

SELECT user_id
FROM your_table
GROUP BY user_id
HAVING COUNT(DISTINCT customer_id) = 3 
注意:

  • 如果表结构确保
    (用户id,客户id)
    组合是
    唯一的
    ;然后您可以使用
    COUNT(*)
    而不是
    COUNT(不同的客户id)
  • 如果您正在寻找至少有三个客户的用户,那么您可以在条件中使用
    >=3
使用groupBy()和havingRaw()

这将返回具有3个或更多客户id的用户id

使用groupBy()和havingRaw()

这将返回具有3个或更多客户id的用户id