问题描述
||
我在MysqL中有两个表,尤其是accounts和subscriber_data。
我想使用帐户表(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);
我是新手,显然做错了事...我搜索了一下,找不到答案。
谢谢。
解决方法
在调用插入脚本之前,我最初没有看到您在PHP中做什么。可能是因为我不习惯PHP脚本编写,尽管更多的可能是因为我当时没有足够的注意。
因此,据我所知您在做什么,您似乎做错了路。
如果需要将一个表中的值插入到另一表中,则只需使用
INSERT...SELECT
构造。
在您的情况下,可能应该是这样的:
INSERT INTO subscriber_data (field_id,sub_id,value)
SELECT \'1\',id,name
FROM accounts
请注意,这是一条指令,它将替换代码中的SELECT...
和INSERT...
。我认为,仅在上面保留PHP脚本的最后两行就足够了,根据我的建议,只需将存储到$sql
的SQL脚本修改为。
如果我缺少什么,请告诉我。