SQL使用另一个表

时间:2017-05-09 22:09:09

标签: php mysql database csv

我对SQL很新(主要是建立表和修改,一路上有一些select / insert语句)但是我手头有一个任务,我坚持下去。

我一直在我的一个页面上通过PHP填充数据库信息的html表。一切都填写正确,但我需要填充数据库表中的一些值,以便我可以在HTML表格中显示它们。

我有一个大型临时表和一个较小的定价表。当在站点上载CSV文件时,我将其插入到临时表中。我想找到一种方法来填写定价表中信息的定价字段。

价格由三件事构成(所有这些都在临时表中):meterType,meterSize和workOrderType2。我的临时表中还有另一个名为onsiteSurveyTestCost的字段。

我的定价表包含priceID,meterSize,meterType,workOrderType和price。

因此,如果插入了CSV并且它对于meterSize为'3'',对于meterType为'Compound',对于workOrderType2为'Survey and Test',那么我希望它使用priceID'1',它具有3“复合测量和测试,我想将价格保存到原始的临时表中,如onsiteSurveyTestCost。

我希望这是有道理的。即使在INSERT / CSV上传时无法完成,我仍然需要在表单页面上找到一种方法,以便我可以显示表单的正确价格。

定价表:

enter image description here

临时表字段:

enter image description here enter image description here

更新:

不完整的SQL语句:

UPDATE staging 
SET onsiteTestSurveyPrice = (
SELECT price from pricing WHERE=
/* meterType of staging matches meterType of pricing*/
/* meterSize of staging matches meterSize of pricing*/
/* workOrderType2 of staging matches workOrderType of pricing*/

1 个答案:

答案 0 :(得分:1)

您应该可以通过将登台表加入这些列的定价表来进行更新。

UPDATE staging
INNER JOIN pricing ON
    staging.meterType = pricing.meterType
    AND staging.meterSize = pricing.meterSize
    AND staging.workOrderType2 = pricing.workOrderType
SET staging.onsiteTestSurveyPrice = pricing.price

可能有更好的方法可以做到这一点,但如果不了解应用程序的工作原理,很难说清楚。