Я боролся со своим запросом и не знаю, что с ним не так. Я не продвинутый пользователь SQL, но я немного разбираюсь в SQL.
У меня есть две таблицы, и я пытаюсь обновить одно поле с полем из другой таблицы. У них нет уникального идентификатора в каждом, поэтому их необходимо сопоставлять с тремя полями (HoleID, From, To), особенно потому, что таблица LEAPFROG_Lithology имеет больше записей, которые не имеют одинаковые значения From / To, чем в таблице Lithology.
Я искал вопросы, заданные по сходной теме, и пробовал другой вариант моего запроса, но ни один из них не работает, и он всегда запрашивает у меня «Ввести значение параметра».
Я пытался с внутренним соединением, как в этом один и один , но это не сработало.
Вот что я попробовал:
Версия 1
Update LEAPFROG_Lithology
SET LEAPFROG_Lithology.Primary_litho = (
SELECT Lithology.Primary_litho
FROM Lithology
RIGHT JOIN LEAPFROG_Lithology ON (
Lithology.[HoleID] = LEAPFROG_Lithology.[HoleID] and
Lithology.[From_m] = LEAPFROG_Lithology.[From_m] and
Lithology.[To_m] = LEAPFROG_Lithology.[To_m]))
Where LEAPFROG_Lithology.Primary_litho is null ;
Версия 2 (пробовал также с INNER JOIN)
Update LEAPFROG_Lithology
LEFT JOIN Lithology ON (
LEAPFROG_Lithology.[HoleID] = Lithology.[HoleID] and
LEAPFROG_Lithology.[From_m] = Lithology.[From_m] and
LEAPFROG_Lithology.[To_m] = Lithology.[To_m])
SET LEAPFROG_Lithology.Primary_litho = Lithology.Primary_litho
Where LEAPFROG_Lithology.Primary_litho is null ;
Я пробовал с [] везде, ни с одним. Это не имеет значения.
Может кто-нибудь сказать мне, что я делаю не так?
Спасибо!