2015-09-09 3 views
0

Мне нужно добавить значения строки в таблице2 (например, Id2 = 2) в строку из таблицы1 (например, Id = 1). Есть в общей сложности более 100 столбцов в базе данных MySQLДобавление двух строк разных таблиц в MySQL

table1

+---+---+---+---+ 
|Id1| A | B | C | 
+---+---+---+---+ 
| 1 | 0 | 1 | 0 | <- selected row 
| 2 | 1 | 1 | 0 | 
| 3 | 0 | 0 | 1 | 
| n | 0 | 1 | 1 | 
+---+---+---+---+ 

table2

+---+---+---+---+ 
|Id2| A | B | C | 
+---+---+---+---+ 
| 1 | 0 | 1 | 0 | 
| 2 | 0 | 1 | 1 | <- selected row 
| 3 | 1 | 0 | 0 | 
| n | 1 | 1 | 1 | 
+---+---+---+---+ 

Результат: table1

+---+---+---+---+ 
|Id1| A | B | C | 
+---+---+---+---+ 
| 1 | 0 | 2 | 1 | <- updated 
| 2 | 1 | 1 | 0 | 
| 3 | 0 | 0 | 1 | 
| n | 0 | 1 | 1 | 
+---+---+---+---+ 

Пробовал кучу вещей уже, но это не сработало. Думал, мне нужно будет выглядеть примерно так:

UPDATE table1 
SET (SELECT * FROM table1 WHERE Id=1) = (SELECT * FROM table1 WHERE Id=1) + (SELECT * FROM table2 WHERE Id=2) 

Надеюсь, вы, ребята, можете мне помочь :).

+0

вы имеете в виду 100 столбцов в таблице? Базы данных OMG не являются электронными таблицами. – e4c5

+0

@ e4c5 это было приложение, которое я написал в excell/vba, а теперь онлайн-версию. Кажется, что mysql не является надлежащим инструментом, вы можете порекомендовать что-то еще? Redis? –

+0

Mysql - это надлежащий «инструмент», именно так, как данные структурированы в РСУБД, очень отличается от таблицы. Если вы хотите сохранить таблицу, такую ​​как природа, вам нужно будет использовать систему nosql. – e4c5

ответ

0

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

UPDATE items,month SET items.price=month.price+items.price 
WHERE items.id=month.id; 

Далее ссылка здесь .. https://dev.mysql.com/doc/refman/5.0/en/update.html

+0

спасибо, к сожалению, только столы равны для двух таблиц. Похоже, мне нужно делать 100+ запросов, не так ли? –

+0

Если ваш идентификатор совпадает с 1 до 2., вы можете сказать id = id + 1. то вы можете просто написать, как указано выше. Если нет, вы должны выбрать значения каждого столбца назначения и обновить исходную таблицу. – DarkKnight

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