2016-04-18 83 views
0

不知道这甚至是可能的。我使用multi_query同时将值插入到两个表中。这工作正常。其中一个表有一个自动增量列,我需要把最后一个自动增加的数字插入到第二个表中,如下所示:插入到表1中,然后从列X中取出最后一个插入的数字,并将其与其他数据一起插入为表2.我已经使用SELECT LAST和INSERT INTO但到目前为止,它只是做我的头打周围的插入语句如下:。插入值从一张表到另一张,同时做一个双重插入

$sql= "INSERT INTO tbleClients (riskClientId, riskFacility, riskAudDate)  VALUES ('$riskclient2', '$facility2', '$riskdate2');"; 

$sql .="SELECT  LAST(riskId) FROM tbleClients;";$sql .="INSERT INTO tblRiskRegister (riskId)  SELECT riskId FROM tbleClients ;"; 

$sql .= "INSERT INTO tblRiskRegister  (riskAudDate, riskClientId,  riskSessionId, RiskNewId) VALUES  ('$riskdate2', '$riskclient2', '$sessionid', '$risknewid')"; 

单独都产生结果,但我需要它发生同时。我的想法是将它们分开制作,但效果不是很好。任何指针将不胜感激。

+1

可能重复[MySQL插入多个表? (数据库规范化?)](http://stackoverflow.com/questions/5178697/mysql-insert-into-multiple-tables-database-normalization) –

+0

我实际上看着多日查询问题,它解决了它但我从来没有注意到最后一个插入ID部分。现在,答案已经一石二鸟。 –

回答

0
$sql= "INSERT INTO tbleClients (riskClientId, riskFacility, riskAudDate)  VALUES ('$riskclient2', '$facility2', '$riskdate2');"; 

执行上述查询后,使用mysqli_insert_id(),它给你最后一个插入ID。

那么下面的查询就没用了。 $ sql。=“SELECT最后(riskId)FROM tbleClients;”;

$sql .="INSERT INTO tblRiskRegister (riskId)  SELECT riskId FROM tbleClients ;"; 

您可以在上面的查询中插入last_insert_id。

无法在查询下面找到以上&之间的关系。

$sql .= "INSERT INTO tblRiskRegister  (riskAudDate, riskClientId,  riskSessionId, RiskNewId) VALUES  ('$riskdate2', '$riskclient2', '$sessionid', '$risknewid')"; 
+0

这就是我最终做的。谢谢。 –

相关问题