繁体   English   中英

SQL用另一个表的值填充一个表的字段

[英]SQL filling one table's fields with values from another table

我对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',那么我希望它使用具有3“复合调查和测试的priceID'1',而我希望将价格另存为原始登台表中的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*/

您应该能够通过将登台表与那些列上的定价表结合起来进行更新。

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

也许有更好的方法可以做到这一点,但是如果不了解您的应用程序的工作原理就很难说出来。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM