2015-10-22 4 views
1

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

ALTER TABLE info_apie_zaideja 
    ADD SELECT info_apie_match.Rank AFTER 'Nick' 
    FROM info_apie_match; 

или это

UPDATE info_apie_zaideja 
    ADD COLUMN SELECT info_apie_match.Rank AFTER 'Nick' 
    FROM info_apie_match; 

, но это не сработало. О, и таблица, где я хочу вставить столбец, - это таблица представлений, если это помогает. Все ответы будут оценены.

+0

таблица просмотра не имеет значения – Alex

ответ

0

Вам необходимо сделать это в два этапа. Сначала измените таблицу, чтобы добавить новый столбец:

ALTER TABLE info_apie_zaideja 
ADD COLUMN Rank INT AFTER Nick; 

Затем заполнить его путем копирования из соответствующих строк в другой таблице:

UPDATE info_apie_zaideja AS z 
JOIN info_apie_match AS m ON z.id = m.zaideja_id 
SET z.Rank = m.Rank 

Я должен был догадаться, в колонке, которая связывает две таблицы , Исправьте предложение ON в соответствии с вашими фактическими отношениями в таблице.

Кроме того, рассмотрите, действительно ли вам нужен столбец в обеих таблицах. С этой избыточности вам нужно убедиться, что всякий раз, когда вы обновляете одну таблицу, другая обновляется. Вместо этого вы можете просто использовать JOIN всякий раз, когда вам нужно значение из другой таблицы.

+0

Эй, извините за долгую задержку. Прежде всего, спасибо за ответ. Во-вторых, почему вы пишете 'AS z' и' AS m'? Да, мне действительно нужен столбец в обеих таблицах. – Tomeister

+0

Это псевдонимы таблиц, поэтому мне не нужно записывать полные имена таблиц каждый раз в запросе. Это проще, чем писать 'SET info_apie_zaideja.Rank = info_apie_match.Rank'. – Barmar

+0

ага, я вижу. Это полезно. О, и я исправил проблему, но на самом деле не помню, как это сделать. Еще спасибо за ответ, я уверен, что он поможет мне в дальнейшей разработке db – Tomeister

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