Как вставить данные из table1 в table2, если у них есть что-то общее?

#mysql #sql

#mysql #sql

Вопрос:

У меня есть 2 таблицы в одной базе данных в MYSQL, и я хочу вставить столбец в table1 в столбец в table2, и мое условие таково, если table1.name равно table2.name. Я пробовал это, но не сработало

 INSERT INTO Table2 (solId, openTime, closingTime, guid)  
SELECT solId, openTime, closingTime, guid
FROM Table1
WHERE Table2.name = Table1.name;
  

Комментарии:

1. Это где не имеет смысла. У вас нет доступа к данным table2 там. В любом случае, чего вы пытаетесь достичь? вставить все данные или только некоторые?

2. только некоторые данные, где таблица 1 и таблица 2 имеют одинаковое значение в идентификаторе столбца

3. Тогда у вас уже есть данные в table2? Просто соединитесь с этой таблицей, выбрав в этом поле. Вы можете сначала выбрать, и когда это даст вам желаемое, вам нужно вставить, затем просто вставить.

Ответ №1:

Возможно, вам понадобится update :

 update table2 t2 join
       table1 t1
       on t1.name = t2.name
    set t2.solId = t1.solId,
        t2.openTime = t1.openTime,
        t2.closingTime = t1.closingTime,
        t2.guid = t1.guid;