2012-06-15 2 views
0

У меня есть 12 столов с этим 2-х полей:MySQL: объединить различные таблицы в один большой стол

  • код (VARCHAR первичный ключ) и текст (VARCHAR)

Каждая таблица уже имеет 1055 записей (все таблицы имеют одинаковую сумму)

Мне нужно создать новую таблицу со следующими полями:

  • ID (интермедиат рк), поле -1, поле-2, ... поле-2

Каждое поле -N будет иметь содержимое текст поле одной из таблиц. Мне не нужно поле из этих таблиц.

Таким образом, в конце концов, это новая большая таблица должна иметь 1055 записей, с идентификатора поля, идущего от 1 до 1055, а остальных полей (поля 1, поля-2, и т.д.), сохраняя значения, хранящиеся в поле , из 12 таблиц, которые у меня есть.

Как это сделать? Я пытался какое-то время, но я не могу найти правильный способ сделать это.

Любая помощь была бы высоко оценена!

+0

Как вы можете сопоставить текстовые поля из таблицы1 с текстовыми полями из таблицы2? У них одинаковый код? – Sebas

+0

нет, поле кода в 12 таблицах отличается. Новая «большая» таблица, которую я хочу сейчас, пуста, я просто хочу заполнить ее содержимым из 12 таблиц. – Albert

+1

. Этот дизайн таблицы очень плохой, зачем вам 12 таблиц, все из которых имеют одинаковые атрибуты? – ewein

ответ

0

Я не уверен, понимаю ли я ваш вопрос, но я бы просто написал цикл, который будет вставлять каждую строку каждой таблицы в новую созданную таблицу.

Нечто подобное

CREATE TABLE newTable 
(
code int NOT NULL AUTO_INCREMENT, 
text varchar(255), 
PRIMARY KEY (code) 
) 

// Сделайте это для каждой таблицы:

SELECT text FROM table1; 

for(int i = 0; i < dataSet.size; i++) 
{ 
    INSERT INTO newTable (text) VALUES (row(i).value) 
} 
+0

Если я правильно его понимаю, ваш ответ не удовлетворяет половину требования, ему нужно динамически добавлять 1055 разных столбцов, на которые он ссылается. – GDP

+1

Я думаю, что у него есть 12 таблиц с двумя столбцами - column1 = Код и column2 = текст. Если вы создаете таблицу и задаете код в качестве первичного ключа для автоинкремента, затем выберите все записи из каждой из 12 таблиц и вставьте их в новую таблицу, автоинкремент будет динамически расширять таблицу, и он ничего не говорит о заказе текстовых полей, чтобы он работал нормально. В итоге у вас будет одна таблица с 1055 кортежами. – ewein

+0

Возможно, вы правы, извините ... у него возник еще вопрос о добавлении 10 миллионов столбцов, поэтому я мог бы смешивать два вопроса. – GDP

0

Так что я, наконец, решил сделать это, чтобы загрузить все данные из этих таблиц Excel, создать новый excel со структурой и значениями, которые мне нужны, и загружать это новое превосходство как CSV. Теперь у меня есть именно то, что я хотел! Вероятно, это не самый лучший метод, но он так долго не работал и работал :)

+0

хорошо работает, если вы не хотите использовать код. – ewein

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