在第一个表中插入数据后,如何将数据从一个表插入另一个表?

时间:2017-06-19 20:57:31

标签: mysql tsql

请帮助我,

如何在第一个表中插入数据后,将数据从一个表插入另一个表? 我写了一个查询,但它有问题,它说"未知栏' test.ProjectNumber' &#34 ;.我应该先定义它吗? 我想从test2.PN插入数据到test.ProjectNumber 请帮帮我

代码:

    /**
 * Insert a record on another table
 */

// SQL statement parameters
$insert_table  = 'test2';    
$insert_fields = array(  
     'test2.PN' => 'test.ProjectNumber',
 );

// Insert record
$insert_sql = 'INSERT INTO ' . $insert_table
    . ' ('   . implode(', ', array_keys($insert_fields))   . ')'
    . ' VALUES ('    . implode(', ', array_values($insert_fields)) . ')';

sc_exec_sql($insert_sql);

1 个答案:

答案 0 :(得分:0)

您的SQL评估如下:

INSERT INTO test2 ( test2.PN ) VALUES ( test.ProjectNumber );

这是无效的,因为在此上下文中无法理解test.ProjectNumber

我认为您需要做的是两个单独的插入语句,如下所示:

-- assumes that the number has not been inserted into test2 yet, 
-- just insert the same value into both tables:
INSERT INTO test2 ( test2.PN ) 
VALUES ( somevalue );

INSERT INTO test ( test.ProjectNumber )
VALUES ( somevalue );

或者如果已插入第一行(您的问题不明确),您可以选择该值并插入它,但您需要能够识别该行(我正在使用123

-- If test2 already contains the row you need to insert from
-- then you need to select that row to insert the new row in test
INSERT INTO test ( test.ProjectNumber )
SELECT test2.PN
FROM test2
WHERE test2.Id = someid;

希望这有帮助 - 我没有为你翻译成php,部分是为了练习,但部分是因为我的php很生锈......