Как скопировать данные из одной таблицы в другую в MySQL?

То, что я пытаюсь сделать, должно быть действительно простым. У меня есть две таблицы со следующими столбцами:

Таблица 1:
Имя, Уровень

Таблица 2:
Имя, Стоимость

Имя является первичным ключом. Я хочу объединить данные обеих таблиц в одну таблицу, которая имеет все три столбца. То, что я пытался сделать, это добавить столбец стоимости в таблицу 1 и скопировать в нее все значения стоимости из таблицы 2. Я пробовал множество предложений из других тем на этом сайте, и у меня никогда не было ни одной работы для меня. Новый столбец Стоимость в Таблице 1 никогда не изменялся с какими-либо новыми значениями. Зачем?

Я делаю это на MySQL Workbench на Ubuntu.

Вот тот, который я попытался использовать (новый столбец стоимости уже сделан для Tbl1):

ОБНОВЛЕНИЕ Tbl1
Стоимость SET = (
ВЫБРАТЬ Стоимость
ОТ Tbl2
WHERE Name = ‘SpecificName’)
WHERE Name = ‘SpecificName;

Это работает, когда я указываю отдельные строки, но не работает, когда я заменяю Name = ‘SpecificName’ на что-то вроде «Tbl1.Name = Tbl2.Name»

0

Решение

Проблема, с которой вы сталкиваетесь, заключается в том, что некоторые имена находятся в одной таблице, но не в другой. Вот один метод, используя один create table as:

create table NameLevelCost as
select n.name, t1.level, t2.cost
from (select name from table1
union
select name from table2
) n left join
table1 t1
on t1.name = n.name left join
table2 t2
on t2.name = n.name;

Это предполагает, что name уникален в каждой из таблиц.

0

Другие решения

update Tbl1 t1 left join Tbl2 t2 on t2.Name = t1.Name set t1.Cost = t2.Cost;
0

По вопросам рекламы [email protected]