MYSQL функция выбора sql - PullRequest
       3

MYSQL функция выбора sql

0 голосов
/ 11 октября 2018

Я уже создал функцию под названием Calculate_marks (user_id), и она работает правильно, но когда я вставляю оператор вставки, он продолжает работать в MySQL и не отвечает, кто-нибудь знает, в чем проблема?

INSERT INTO `marks`
(`marks_user_id`, `marks_addtime`, `marks_amount`
) 
SELECT `user_id`, UNIX_TIMESTAMP(),
    (SELECT calculate_marks(`user_id`))
FROM `user`
WHERE `user`.`user_status` = 'A';

Он вернет желаемый результат, если я запусту этот

SELECT `user_id`, (SELECT calculate_marks(`user_id`))
FROM `user`
WHERE `user`.`user_status` = 'A';

1 Ответ

0 голосов
/ 11 октября 2018

Вы пытаетесь коррелированный подзапрос, без правильного наложения.Вам не нужно использовать подзапрос для расчета оценок.Вместо этого попробуйте следующее:

INSERT INTO `marks`
(`marks_user_id`, `marks_addtime`, `marks_amount`
) 
SELECT `user_id`, UNIX_TIMESTAMP(), calculate_marks(`user_id`) 
FROM `user`
WHERE `user`.`user_status` = 'A';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...