我想在我的表中插入多行,此查询的数据是从前端获取的。此查询中的一列不从前端传递,其值从另一个表的查询执行时间确定。我可以把这些数组放在循环中&执行一个SELECT查询&对每个项目执行一个INSERT查询,但我想避免它,因此我创建了一个大的INSERT查询!直到这里一切都好,但现在,一个值应该从另一个表!MySQL INSERT ... SELECT仅用于一列
我可以使用INSERT ... SELECT方法 https://dev.mysql.com/doc/refman/5.6/en/insert-select.html
它允许多个行的插入,匹配所有行被插入&我可以通过在SELECT一部分的虚拟列值以自定义查询。但现在的问题是这些'假的列'是相同的所有行,他们应该我在循环,不同的每个循环!如何实现这一目标?
情景
$products = array(
"1" => array(
"product_name" => "apple",
"units" => "1",
),
"2" => array(
"product_name" => "mango",
"units" => "3",
),
);
假设这是阵列I从前端得到的,每一个键是产品ID包含其它描述为在车产物。现在我会在Orders
表中插入这个,但价格是缺少的,我必须从Products
表中取得!我可以使用产品ID执行select
。
类似的问题:
这个答案采用伪造列:
从接受的答案复制:
INSERT INTO website (url,fid) SELECT $site,id FROM users WHERE name = $user
这里$site
将是相同的所有已插入记录,我希望每个记录都有不同的数据!
我研究这个话题,但无法找到所需的答案:(
HPW你涉及这两个表?有没有一对一或一对多的关系? – manian
@manian用虚拟场景更新了我的问题以提供一个想法。对于每个项目,一旦从其他表格返回一个值。 – demonofthemist