我对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上传时无法完成,我仍然需要在表单页面上找到一种方法,以便我可以显示表单的正确价格。
定价表:
临时表字段:
更新:
不完整的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*/
)
答案 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
可能有更好的方法可以做到这一点,但如果不了解应用程序的工作原理,很难说清楚。