1

我在 mySQL 中有两个表,特别是accounts 和subscriber_data。

我想使用accounts表中的两列(id,name),并将其插入subscriber_data表中的两列(sub_id,value)。

我似乎无法找到一种方法来检索此信息并将其放入另一个表中,而不会将其聚集在同一行的同一值字段中,如下所示:0、0、1

目前,我的 PHP 看起来像这样:

$sql = "SELECT * FROM accounts";
$result = mysql_query($sql);

while($alt_result = mysql_fetch_array($result, MYSQL_NUM)){
$id[] = $alt_result[0];
$value1[] = $alt_result[1];
}
$idstring = implode(', ', $id); 
$value1 = implode(', ', $value1); 


$sql = "INSERT INTO subscriber_data (field_id, sub_id, value) VALUES('1', '$idstring', '$value1') ON DUPLICATE KEY UPDATE value='$value1'";
$result = mysql_query($sql);

我是这方面的新手,显然做错了什么......我搜索并找不到答案。

谢谢。

4

1 回答 1

1

在调用插入脚本之前,我一开始没有看到您在 PHP 中所做的事情。也许是因为我不习惯 PHP 脚本,但更可能是因为我当时没有足够的注意力。

所以,据我所知,你在做什么,你似乎做错了。

如果您需要将一个表中的值插入到另一个表中,您只需使用该INSERT...SELECT构造。

在您的情况下,它可能应该是这样的:

INSERT INTO subscriber_data (field_id, sub_id, value)
SELECT '1', id, name
FROM accounts

请注意,这是一条指令,它会替换您的代码中的SELECT...和。INSERT...我认为如果你只留下上面 PHP 脚本的最后两行就足够了,你存储的 SQL 脚本$sql应该根据我的建议简单地修改。

如果我遗漏了什么,请告诉我。

于 2011-05-16T19:30:07.940 回答