2017-04-25 50 views

回答

1

試試這個:

UPDATE TableA A 
JOIN TableB B 
ON B.val3 = A.col3 
SET A.col1 = b.val1, 
    A.col2 = b.val2 
WHERE B.Key = (condition) 
+0

我瞭解您的查詢,但我從Select語句中獲得所有值,我不知道如何從Select語句傳遞值。 –

+0

TableB在查詢中連接到TableA,這就是獲取值的位置。您可以使用select,但只要您可以定義條件以匹配兩個表中的源行和目標行,就可以工作。 –

0

幫我解決我的問題。 我很難確定這是否是最簡單的解決方案,但適用於我。

CREATE PROCEDURE cursor_ROWPERROW() 
BEGIN 
    DECLARE val1 INT; 
    DECLARE val2 VARCHAR(30); 
    DECLARE val3 VARCHAR(30); 
    DECLARE done INT DEFAULT FALSE; 
    DECLARE cursor_i CURSOR FOR SELECT val1,val2, val3 FROM table_A 
WHERE = (condition); 
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; 
    OPEN cursor_i; 
read_loop: LOOP 
    FETCH cursor_i INTO val1,val2, val3; 
    IF done THEN 
     LEAVE read_loop; 
    END IF; 
    UPDATE TableA A 
    SET A.valA1 = val1, A.valA2 = val2 
    WHERE A.valA3 = val3; 
    END LOOP; 
    CLOSE cursor_i; 
END; 
;;