我有4个mysql表,Table_1,Table_2,Table_3,Table_4 表1,包括6列命名(item2_ID,item2_name,Item3_ID,item3_name,item4_ID,item4_ID)和表Table_2,Table_3,Table_4每个都有两列名为(item2_ID,item2_name),(item3_ID,item3_name),(item4_ID,item4_name),其中将每个唯一的item_ID分配给item_name。
通过php& html表单,我只收到要插入Table_1 ID列的项ID。 现在我想根据其他3个表将Item_names自动插入Table_1的'Item_name'列。因此,例如,Table_1中的一行将包括所有item_ID(由html表单接收)和所有item_names(使用其他3个表插入同一行)。我怎样才能做到这一点?提前谢谢。
答案 0 :(得分:2)
假设您已将表单中的项ID的值分配给php变量$itemID
。您的查询将如下所示:
INSERT INTO Table_1 (item_id, item_name) SELECT t2.item_id, t2.item_name FROM Table_2 t2 WHERE t2.item_id = $itemID
请注意,从select语句插入时,不需要关键字VALUES
。
我会保留上述内容,以防您需要再次参考。至于新问题,我会用PHP来做,而不是查询。
只需将3个表中的值选择为数组,然后构建插入查询:
假设您有一个从select语句中获得的数组(我们称之为$myvalues
):
Array
(
[0] => 1
[1] => Name2
[2] => 2
[3] => Name3
[4] => 3
[5] => Name4
)
为简单起见,这是您的查询:
$query = "INSERT INTO Table_2 VALUES ('" . implode("','", $myvalues) . "')";
哪个会给你:
INSERT INTO Table_2 VALUES ('1','Name2','2','Name3','3','Name4');