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

标签 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“Compound Survey和进行测试,我想将价格作为 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*/

)

最佳答案

您应该能够通过将临时表连接到这些列上的定价表来进行更新。

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

可能有更好的方法来做到这一点,但如果不了解更多关于应用程序如何工作的信息,就很难判断。

关于php - SQL 用另一个表中的值填充一个表的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43880646/

相关文章:

php - PHP 中的下一个和上一个

php - 序列化对象并缓存它们的奇怪行为

mysql - 迁移的 Joomla 网站显示表不存在

django - 如何使用 django orm 进行嵌套 Group By ?

php - 如何在提交按钮单击时将当前数据插入数据库?

php - Bootstrap 输入组添加到谷歌浏览器

php - 在开发过程中如何正确测试 Composer 包?

PHP - 使用 PDO 将字符串数组绑定(bind)到 IN() 子句

mysql - PhpMy管理员密码

java - 传递到持久化的分离实体 - Hibernate + JavaFX