2015-04-02 5 views
0

У меня проблема с моим запросом обновления. Мне нужно сделать это работает: PОшибка процедуры обновления MySql

Эта процедура выбора всех дублирующих записей (нужно заново выбрать и значение обновления)

DELIMITER $$ 
USE `bgw_r`$$ 
DROP PROCEDURE IF EXISTS `tpl_pobierz_dodane`$$ 
CREATE DEFINER=`root`@`localhost` PROCEDURE `tpl_pobierz_dodane`(puzytkownik VARCHAR(50), psesja VARCHAR(50)) 
BEGIN 
SELECT a.`id` AS idd FROM `paliwa_temp` AS a INNER JOIN `paliwo_fv` AS b 
ON (a.`numerRejestracyjny` = b.`numer_rejestracyjny`) 
WHERE a.`sesja` = psesja AND b.`data_tankowania` = a.`dataTankowania` AND a.`iloscPaliwa` = b.`wydano_litry`; # GROUP BY id 
END$$ 
DELIMITER ; 

или создать другую процедуру обновления, что значения:

DELIMITER $$ 
USE `bgw_r`$$ 
DROP PROCEDURE IF EXISTS `tpl_ustaw_jako_duplikaty`$$ 
CREATE DEFINER=`root`@`localhost` PROCEDURE `tpl_ustaw_jako_duplikaty`(puzytkownik VARCHAR(50), psesja VARCHAR(50)) 
BEGIN 
UPDATE a 
    SET a.`duplikat` = "true" 
    FROM `paliwa_temp` AS a 
    INNER JOIN `paliwo_fv` AS b 
    ON(b.`numer_rejestracyjny` = a.`numerRejestracyjny`) 
    WHERE a.`sesja` = psesja AND b.`data_tankowania` = a.`dataTankowania` AND a.`iloscPaliwa` = b.`wydano_litry`; 
END$$ 
DELIMITER ; 

Ошибка в запросе обновления: Код ошибки: 1064

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM `paliwa_temp` as a 
    INNER JOIN `paliwo_fv` as b 
    on(b.`numer_rejestracyjny' at line 5 

Не знаю, почему:/

ответ

0

Правильное присоединиться обновление заявление должно быть

update paliwa_temp a 
INNER JOIN `paliwo_fv` AS b 
ON(b.`numer_rejestracyjny` = a.`numerRejestracyjny`) 
SET a.`duplikat` = "true" 
WHERE a.`sesja` = psesja 
AND b.`data_tankowania` = a.`dataTankowania` 
AND a.`iloscPaliwa` = b.`wydano_lit 
+0

Спасибо за ваше время :) – Sahee

0

Синтаксис обновления с присоединиться должны быть:

UPDATE `paliwa_temp` AS a 
INNER JOIN `paliwo_fv` AS b 
    ON(b.`numer_rejestracyjny` = a.`numerRejestracyjny`) 
    SET a.`duplikat` = "true" 
      WHERE a.`sesja` = psesja AND b.`data_tankowania` = a.`dataTankowania` AND a.`iloscPaliwa` = b.`wydano_litry`;