копировать столбцы между двумя таблицами, не вставляя новые строки

0

таблица1 - столбцы: идентификатор, дата,

table2 - столбцы: id, дата, img, auth, moder, теги, посещения

таблица1 - 1200 строк
table2 - 1000 строк

Я хочу скопировать отсутствующие столбцы из таблицы 2 в таблицу 1 (img, auth, moder, теги, посещения).

независимо от значений (это все тестовые данные, не имеет значения, какое значение находится в определенной строке).

Я попытался сначала создать отсутствующие столбцы в таблице 1, а затем:

insert into table1 (img, auth, moder, tags, visits) select img, auth, moder, tags, visits from table2;

Но это вставляет новые строки в table1. Я не хочу новых строк - просто добавьте новые столбцы, содержащие данные из таблицы2.

Теги:

2 ответа

2
Лучший ответ

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

UPDATE table1 t1
INNER JOIN table2 t2
    ON t1.id = t2.id AND t1.date = t2.date
SET
    t1.img = t2.img,
    t1.auth = t2.auth,
    t1.moder = t2.moder,
    t1.tags = t2.tags,
    t1.visits = t2.visits;
  • 0
    почему JOIN ON t1.id = t2.id and... это не обязательно. t1.id может быть любым идентификатором, а t2.id может быть любым идентификатором.
  • 0
    @qadenza Если нет способа связать запись из одной таблицы с другой таблицей, то нет никакого способа сделать значимое обновление.
Показать ещё 3 комментария
1

использовать обновление

update table1 
join table2 on table1.id=table2.id and table1.date=table2.date
set  tabl1.img=tabl2.img, table1.auth=table2.auth, table1.moder=table1.moder,
table1.tags=table2,tags, table1.visits=table2.visits

Ещё вопросы

Сообщество Overcoder
Наверх
Меню