根据另一个表自动将数据插入到mysql表列

时间:2014-08-18 23:31:54

标签: php mysql sql

我有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个表插入同一行)。我怎样才能做到这一点?提前谢谢。

1 个答案:

答案 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');