Я довольно новичок в SQL (в основном я строю таблицы и изменяю их, с некоторыми инструкциями выбора / вставки), но у меня есть задача, над которой я застрял.
Я заполнял HTML-таблицы на одной из моих страниц информацией о базе данных через PHP. Все заполняется правильно, но мне нужно заполнить некоторые значения в моей таблице базы данных, чтобы я мог показать их в таблице HTML.
У меня есть большой промежуточный стол и меньшая таблица цен. Когда файл CSV загружен на сайт, я вставляю его в промежуточную таблицу. Я хочу найти способ заполнить поля цен из информации в таблице цен.
Цены построены из трех вещей (все они находятся в промежуточной таблице): meterType, meterSize и workOrderType2. В моей промежуточной таблице есть еще одно поле, которое называется onsiteSurveyTestCost.
Моя таблица ценообразования содержит priceID, meterSize, meterType, workOrderType и цену.
Итак, если CSV вставлен и имеет «3» для meterSize, «Соединение» для meterType и «Съемка и тест» для workOrderType2, я хочу, чтобы он использовал 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*/
)
Вы сможете выполнить обновление, соединив свою промежуточную таблицу с таблицей цен в этих столбцах.
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
Возможно, есть лучший способ сделать это, но трудно сказать, не зная больше о том, как работает ваше приложение.
Других решений пока нет …