2015-08-05 3 views
0
| Table [A]       | Table [B] 
----------------------    --------------------- 
|         | 
| id value data     | id value data 
| ab  15  100     | ac  19  200 
| ab  18  101     | ac  28  310 
| ab  22  199     | ac  39  401 

Таблица A - это моя старая таблица базы данных с данными истории. Таблица B моя текущая таблица базы данных с скорректированным значением в идВставить данные из таблицы A в таблицу B WHERE (условия) & SET Col.a = "xxx"

Я хотел вставить исторические данные из таблицы А в таблице B WHERE значение < = ххое и значения> = хххми, а также в то же время установить данные from tablea.id = ac, когда они вставлены в таблицу B, поэтому результат данных будет.

| Table [A]       | Table [B] 
--------------------     ---------------------- 
|         | 
| id value data     | id value data 
| ab  15  100     | ac  19  200 
| ab  18  101     | ac  28  310 
| ab  22  199     | ac  39  401 
|         | ac  15  100 
|         | ac  18  101 
|         | ac  22  199 

Я буду использовать INSERT IGNORE, так как моя таблица имеет 3 столбца в качестве составного первичного ключа. Описание таблицы - всего лишь образец. В моей таблице больше столбцов, подчеркивающих основное отличие импорта данных, которое я хочу выполнить.

+0

Будет ли идентификатор всегда 'ac'? и я думаю, 6-й столбец в таблице [b], значение должно быть '18' вместо' 28' – Crazy2crack

+0

Для этого текущего импорта да значение будет переменным. – Royston

+0

Тогда вы можете использовать нижеследующее решение Gordon – Crazy2crack

ответ

1

Это то, что вы хотите?

insert into tableb (id, value, data) 
    select 'ac', value, data 
    from tablea 
    where id = 'ab'; 

Это вставляет значения и изменяет id от 'ab' к 'ac'.

+0

Я пробовал, но получил код ошибки: 1054. Неизвестный столбец 'id' in 'field list' http://pastebin.com/PwTxc9Ga – Royston

+0

@Royston. , , Образцы данных в вашем вопросе имеют столбцы с именем 'id' в обеих таблицах. Я не знаю, почему это было бы неопределенным. –

+0

Спасибо, Гордон! Непонятно, почему столбцы будут иметь это поле «id», когда я скопировал его непосредственно из MySQL Workbench. – Royston

Смежные вопросы