5

我是使用存储过程的新手。我有这个从表中获取值的查询。

之后,我需要将结果插入另一个表。

这是我的查询:

   SELECT a.gender, 
          b.purpose_abroad_as_per_recorded_travel, 
          b.country_name 
   FROM b   LEFT JOIN a
   ON b.person_id=a.id

我打算将所有结果插入表'c'。

如何使用存储过程同时进行选择和插入?谢谢

4

2 回答 2

7

您可以将选择返回的结果直接插入到插入中:

DELIMITER //
CREATE PROCEDURE updateTableC()
BEGIN       
       INSERT INTO c (gender, purpose_abroad_as_per_recorded_travel, country_name)
       SELECT a.gender, b.purpose_abroad_as_per_recorded_travel, b.country_name 
       FROM b   LEFT JOIN a
       ON b.person_id=a.id;
END//
DELIMITER ;

有关 MySQL 存储过程的更多信息,这是一个好的开始: MySQL 存储过程入门。

于 2013-12-17T09:04:31.790 回答
2

试试这个:

INSERT INTO c (gender, purpose_abroad_as_per_recorded_travel, country_name )
SELECT a.gender, b.purpose_abroad_as_per_recorded_travel, b.country_name 
FROM b 
LEFT JOIN a ON b.person_id = a.id;
于 2013-12-17T09:02:29.590 回答