Цикл MariaDB не отображает результаты запроса - PullRequest
0 голосов
/ 15 февраля 2019

У меня есть простой запрос:

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.

Есть что-то еще, что я пропускаю?спасибо.

Ответы [ 2 ]

0 голосов
/ 16 февраля 2019

Ответ на заданный вопрос находится в определении DO.Он определен для выполнения запроса, а затем выбрасывает результаты.

0 голосов
/ 15 февраля 2019

Почему вы хотите использовать 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 необходимо.

...