我有一个简单的问题:
SELECT COUNT(ud.UserID), COUNT(DISTINCT ud.ProductID)
FROM users_data AS ud
JOIN products AS t ON t.ID = ud.ProductID
WHERE ud.UserID = '3'
结果是:
COUNT(ud.UserID) COUNT(DISTINCT ud.ProductID)
519 425
当我试图包含在while或for循环中时:
DELIMITER //
SET @i = 0;
FOR i IN 1..10
DO SELECT COUNT(ud.UserID), COUNT(DISTINCT ud.ProductID)
FROM users_data AS ud
JOIN products AS t ON t.ID = ud.ProductID
WHERE ud.UserID = (i)
END FOR
//
我没有输出,除了:
Query executed OK, 0 rows affected.
还有什么我错了吗?谢谢您。
最佳答案
为什么要使用loop
?作为一个简单的查询,这样做要好得多:
SELECT ud.UserId, COUNT(*), COUNT(DISTINCT ud.ProductID)
FROM users_data ud
GROUP BY ud.UserID;
如果需要特定用户,可以使用
WHERE
子句:SELECT ud.UserId, COUNT(*), COUNT(DISTINCT ud.ProductID)
FROM users_data ud
WHERE ud.UserId IN (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
GROUP BY ud.UserID;
注:我不认为
JOIN
是必要的。关于mysql - MariaDB循环未显示查询结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54700958/