Обновите пустую таблицу с помощью оператора INNER JOIN UPDATE на основе другой заполненной таблицы - PullRequest
0 голосов
/ 11 мая 2018

ВАЖНО: Я действительно новичок в использовании MYSQL.

Мне нужно составить таблицу, и я пытаюсь использовать оператор обновления вместо оператора вставки для обновления таблицы, основанной на другой таблице на запросе внутреннего соединения.

Моя первая таблица выглядит следующим образом:

exp_credit_tracker_designation

id association_id designation_name

является базой на другом столе:

exp_credit_tracker_assoc:

id, credit_type, association_name, address, city, province, postal_code, country, cycle_type, cycle_begin, cycle_months

'1', '2', 'Association', '14 bloor street', 'Toronto', 'ON', 'M5S 2E5', 'US', '2', '1526356800', '7'
'2', '2', 'designation', '40 Willcocks St', 'Ottawa', 'BC', 'M5S 2E5', 'CA', '1', '1526356800', '3'
'3', '2', 'credit types', '85 St George St', 'Toronto', 'AL', 'M5S 2E5', 'US', '2', '1540008000', '3'
'4', '1', 'association', '46 muriel ave', 'St. John', 'NB', 'M5M 2L2', 'US', '1', '1526356800', '4'
'5', '1', 'designation', '10 king street', 'Toronto', 'ON', 'M5S 2E5', 'CA', '2', '1526529600', '9'

Теперь, как вы можете заметить, первая таблица на данный момент не имеет никакого значения, и я надеюсь автоматически обновить мою таблицу с помощью оператора INNER JOIN на основе моего обновления. Что-то в строке:

UPDATE exp_credit_tracker_designation
INNER JOIN exp_credit_tracker_assoc ON exp_credit_tracker_designation.assocaition_id = exp_credit_tracker_assoc.id
SET exp_credit_tracker_assoc.id = exp_credit_tracker_designation.assocaition_id

Для меня это может быть более быстрый способ заполнить мой новый стол и взаимодействовать с ними.

Я не уверен, возможно ли это или даже имеет ли это смысл.

Я буду ждать хорошего предложения о подходе в этих случаях.

1 Ответ

0 голосов
/ 11 мая 2018

Вы говорите, что хотите обновить таблицу exp_credit_tracker_designation данными из другой таблицы, даже если в exp_credit_tracker_designation уже нет данных, это невозможно с оператором обновления

Операторы обновления изменяют существующие данные, и поскольку там уже нет данных, обновлять нечего, по крайней мере, так я интерпретирую ваш вопрос.

Вы должны будете использовать оператор вставки для ввода этих данных из одной таблицы в другую, если в другой уже нет данных. Это довольно просто сделать Вы можете сделать заявление, как это:

insert into table1 (column1, column2, column3)
select column1, column2, column3 from table2

Поскольку вы говорите, что вы довольно плохо знакомы с MySQL, вы можете заметить, что я не использовал традиционный синтаксис

Insert into foo (bar, biz, bad)
values (X, Y, Z)

это потому, что вы извлекаете данные из другой таблицы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...