0
我們爲我們的網上商店定製了一個框架,我們希望添加一些新功能,如其他人也可以查看。這應該顯示已被其他人查看的產品。因此,它應該展示已被其他人查看過本書的圖書。MySQL其他人查看
我們有一個數據庫,用於保存用戶查看哪些產品的日誌。
CREATE TABLE `log_products_viewed` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`productId` bigint(11) DEFAULT NULL,
`userId` bigint(11) DEFAULT NULL,
`createdAt` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=84 DEFAULT CHARSET=latin1;
然後我們想對其他人也查看的產品進行查詢。我們已經嘗試了一些,但是這是正確的查詢。
SELECT productId,
Count(productId) AS viewAmount
FROM log_products_viewed
WHERE userid IN (SELECT DISTINCT(userid) AS members
FROM log_products_viewed
WHERE productId = '396')
AND productId <> '396'
GROUP BY productId
ORDER BY viewAmount DESC
LIMIT 0, 2;
我們得到一個帶有兩個結果和相應金額的回報。但是如果1個用戶多次查看了一個項目,他可以操縱查詢。
因此,查詢必須返回用戶查看次數最多而觀看次數最多的產品。我被困在查詢中,你能幫我解決嗎?
嗨,不幸的是這臺具有多功能的使用。例如每個產品的視圖數量。所以我們真的只想找到其他看過這個產品的最獨特的產品。 –
@PeterFox更新了我的答案(最後一個查詢) –