0
Fiddle Example查找谁喜欢特定产品在MySQL的人最喜欢的产品
我想知道如何从谁喜欢的产品H135
与下表架构的用户找出最喜欢的产品:
CREATE TABLE likes
(`user_id` int,`product_id`int)
;
INSERT INTO likes
(`user_id`,`product_id`)
VALUES
(1,22),
(1,44),
(2,33),
(2,44),
(3,22),
(3,55),
(4,44),
(4,11),
(5,22),
(5,44),
(5,33)
;
CREATE TABLE products
(`product_id` int,`product_name`varchar(30))
;
INSERT INTO products
(`product_id`,`product_name`)
VALUES
(11,'N570'),
(22,'KA89'),
(33,'A321'),
(44,'H135'),
(55,'C839')
;
预期的输出应该是这样的
Liked_product users_who_like_it_also_like Result
H135 KA89 3
我试图self join
但它不”牛逼取得任何结果:
SELECT p.product_name,p2.product_name AS other_liked_products,
COUNT(l2.product_id) AS users_who_like_it_also_like
FROM likes l
INNER JOIN products p ON p.product_id = l.product_id
INNER JOIN likes l2 ON l.product_id = l2.product_id
INNER JOIN products p2 ON p2.product_id = l2.product_id
WHERE l.product_id = 44
AND l2.product_id <> 44
GROUP BY l.product_id
LIMIT 1
你可能只需要一个'为了by'后声明'由...组'。 – 2014-10-19 20:42:35