У меня есть собственная таблица базы данных, для которой я пытаюсь создать запрос, который кажется достаточно простым, но я чувствую, что я где-то путаюсь, потому что результаты не такие, какими они должны быть.
У меня в основном есть таблица, подобная следующей:
Таблица: данные
Колонки:
Row ID Profile Import ID Field ID Product
1 5 Null 5 60 Can
2 0 Null 5 65 Hat
3 0 Null 5 70 Box
4 6 Null 6 60 Fish
В основном я хочу взять слово «Шляпа» в строке 2 и поместить его в столбец «Профиль» строки 1, заменив там нулевое значение. Я делаю это для нескольких строк.
В случае нескольких строк я хочу взять столбец «Профиль» и сделать его равным столбцу «Продукт». Я хочу, чтобы это происходило только в тех строках, где значение «ID» совпадает с «Import ID», и где «Field ID» определенно равен 65. В приведенном выше примере «ID» 5 соответствует «Import ID» 5, поэтому я хочу взять значение «Product» «Hat», где «Field ID» равно 65, и поместить это значение в столбец «Profile», где идентификатор равен 5. Моя таблица содержит более 9000 строк, и таким образом пришлось бы изменить 600, при этом для различных идентификаторов требуются различные продукты.
Результат, который я хотел бы получить:
Row ID Profile Import ID Field ID Product
1 5 Hat 5 60 Can
2 0 Null 5 65 Hat
3 0 Null 5 70 Box
4 6 Null 6 60 Fish
Я молюсь, чтобы это имело смысл ...
Мой запрос был таким
ОБНОВЛЕНИЕ «Данные»
SET 'Profile' = 'Product'
WHERE 'ID' = 'Import ID' И 'Field ID' = 65;
Я также пробовал подзапрос
ОБНОВЛЕНИЕ «Данные»
SET 'Profile' = (ВЫБЕРИТЕ 'Product' ИЗ ДАННЫХ, ГДЕ 'Field ID' = 65)
WHERE 'ID' = 'Импорт ID';
Это не сработало, и мне просто интересно, есть ли какая-то логика, которую я пропустил. Спасибо всем, кто может помочь, я немного пытался понять это ...