Rails MySQL子查询计数
我有两种型号:Rails MySQL子查询计数,mysql,ruby-on-rails,count,subquery,Mysql,Ruby On Rails,Count,Subquery,我有两种型号: 产品 点击 我想得到所有的产品,有超过x点击 这些表如下所示: Products id , 在ruby中,代码可能看起来像products.select{p|p.clicks.size>x}。如何为mysql编写类似的查询 谢谢 试试这个: SELECT * FROM Products WHERE Id IN ( SELECT P.Id FROM Products P JOIN Clicks C ON P.
Products
id
,
在ruby中,代码可能看起来像products.select{p|p.clicks.size>x}
。如何为mysql编写类似的查询
谢谢 试试这个:
SELECT *
FROM Products
WHERE Id IN
(
SELECT
P.Id
FROM Products P
JOIN Clicks C
ON P.Id = C.Product_ID
GROUP BY P.ID
HAVING COUNT(1) > x
) A
或者,如果您只需要产品id
SELECT
P.Id
FROM Products P
JOIN Clicks C
ON P.Id = C.Product_ID
GROUP BY P.ID
HAVING COUNT(1) > x
试试这个:
SELECT *
FROM Products
WHERE Id IN
(
SELECT
P.Id
FROM Products P
JOIN Clicks C
ON P.Id = C.Product_ID
GROUP BY P.ID
HAVING COUNT(1) > x
) A
或者,如果您只需要产品id
SELECT
P.Id
FROM Products P
JOIN Clicks C
ON P.Id = C.Product_ID
GROUP BY P.ID
HAVING COUNT(1) > x
为了有效地执行此操作,您可能需要研究如何使用计数器缓存。ActiveRecord内置了对这个概念的支持,它将使您不必进行子查询 一些链接: