Вызовите запрос для каждой строки, возвращаемой запросом, в MySQL - PullRequest
1 голос
/ 28 марта 2020

У меня проблема, с каждым сотрудником в таблице 'employee' мне нужно вызвать запрос SELECT в таблице 'KPI'. Я использую Курсор, чтобы прочитать каждое значение в таблице 'employee':

DELIMITER $$
CREATE PROCEDURE sp6 ()
BEGIN
    DECLARE finished INTEGER DEFAULT 0;
    DECLARE temp varchar(100) DEFAULT "";

    DEClARE cs1 CURSOR FOR SELECT `full_name` FROM `employee`;
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET finished = 1;
    OPEN cs1;
    fLoop: LOOP
        FETCH cs1 INTO temp;
        IF finished = 1 THEN 
            LEAVE fLoop;
      END IF;

      [FROM KPI TABLE, QUERY TO GET KPI OF EMPLOYEE WITH NAME 'temp']

 END LOOP fLoop;
 CLOSE cs1;

END$$
DELIMITER;

Но я получил сообщение об ошибке: Отсутствует выражение. (около "ON" в позиции 25)

Кто-нибудь, пожалуйста, помогите мне, где я был не прав? Спасибо тебе.

1 Ответ

1 голос
/ 28 марта 2020

Вам не нужен курсор здесь. Просто соединение KPI и employee на full_name.

SELECT k.*
       FROM `KPI` k
            INNER JOIN `employee` e
                       ON e.`full_name` = k.`full_name`;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...