Для каждой строки в таблице x существует ли ее столбец идентификаторов в таблице y

Для каждой строки таблицы x вставьте правильное значение в таблицу y; каждая таблица будет иметь совпадающие идентификаторы, но таблица x имеет некоторые фиктивные значения имени.

Таблица х

field 1     field 2
--------------------
good name   guid 1
good name   guid 2

Таблица y

field 1    field 2
-------------------
bad name   guid 1
bad name   guid 2

Желаемый результат

field 1    field 2
-------------------
good name  guid 1
good name  guid 2

редактировать: это утверждение, которое, как мне кажется, мне нужно (спасибо Bohemian):

UPDATE parts SET sheetname = (select sheetname from sheets where sheets.sheetid = parts.sheetid)

но я получаю ужасную ошибку «операция должна использовать обновляемый запрос». Типичная причина - отсутствие доступа на запись, который у меня есть (и у меня есть другие запросы на обновление и вставку, которые работают нормально). обе таблицы имеют первичный ключ, который не участвует в запросе. Так что я в растерянности относительно ошибки. Пробовал использовать «distinctrow» тоже безрезультатно.

Ваш пример не очень помогает объяснить, чего вы хотите. Хотите обновить значения в y, используя совпадающие значения в x?

Bohemian 12.07.2024 02:02

Кажется, вам нужен оператор UPDATE, а не INSERT. Однако каждая база данных имеет некоторые уникальные части реализации SQL — вам необходимо указать базу данных, которую вы фактически используете. Выберите тег, идентифицирующий эту базу данных.

Adrian Maxwell 12.07.2024 03:30

Пожалуйста, покажите нам, что вы пробовали...

Dale K 12.07.2024 05:03

Являются ли значения sheets уникальными в этой sheetid таблице?

HansUp 12.07.2024 18:49

идентификаторы листов уникальны

Perry 59 12.07.2024 21:48
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
0
5
67
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Чтобы обновить table_y соответствующим значением в table_x с помощью стандартного SQL:

update table_y set
field1 = (
  select field1
  from table_x
  where table_x.field2 = table_y.field2
)

спасибо, Bohemian, думаю, это поможет!

Perry 59 12.07.2024 17:12

это работает! Спасибо!

Perry 59 15.07.2024 21:27
Ответ принят как подходящий

Access считает ваш UPDATE необновляемым, поскольку он содержит подзапрос.

Поскольку вы сообщили, что значения sheets.sheetid уникальны, я не понимаю, зачем вам нужен подзапрос. Просто создайте свой UPDATE на INNER JOIN между двумя таблицами, например:

UPDATE parts INNER JOIN sheets ON parts.sheetid = sheets.sheetid
SET parts.sheetname = sheets.sheetname

Другие вопросы по теме