Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вставить строки из одной таблицы в другую
 
 автор: pautina   (06.01.2012 в 08:33)   письмо автору
 
 

Здравствуйте Уважаемое сообщество.
У меня есть БД bd_portal в ней таблица table_1, таблица состоит из 4 стролбцов (id, name, content, img) в таблице содержится 5 строк например.
Есть ещё одна таблица table_2, таблица состоит из 8 столбцов (id, date_2_1, autor_2, name_2, content_2 , img_2, category_2, link_2)
Мне нужно вставить содержимое 1 строки из table_1 в таблицу table_2,
Какой mysql запрос для этого использовать?

  Ответить  
 
 автор: cheops   (06.01.2012 в 12:49)   письмо автору
 
   для: pautina   (06.01.2012 в 08:33)
 

Для этого используют запрос INSERT ... SELECT
INSERT INTO table_2 (id, name_2, content_2 , img_2)
SELECT * FROM table_1
Остальным четырем столбцам будут назначены значения по умолчанию.

  Ответить  
 
 автор: pautina   (07.01.2012 в 11:28)   письмо автору
 
   для: cheops   (06.01.2012 в 12:49)
 

Смотрите у нас есть 2 таблицы table_1 и table_2

CREATE TABLE IF NOT EXISTS table_1 (
    `ID` VARCHAR(255),
    `Field 1` VARCHAR(255),
    `Field 2` VARCHAR(255),
    `Field 3` longtext) TYPE=MyISAM DEFAULT CHARSET=utf8;

INSERT IGNORE INTO table_1 (`ID`,`Field 1`,`Field 2`,`Field 3`) VALUES  
('1','Уроки Photoshop 1','Рубрика: Эффекты 1','Содержимое контента 1'),
('2','Уроки Photoshop 2','Рубрика: Эффекты 2','Содержимое контента 2'),
('3','Уроки Photoshop 3','Рубрика: Эффекты 3','Содержимое контента 3'),
('4','Уроки Photoshop 4','Рубрика: Эффекты 4','Содержимое контента 4'),
('5','Уроки Photoshop 5','Рубрика: Эффекты 5','Содержимое контента 5')

для 2 таблицы

CREATE TABLE IF NOT EXISTS table_2 (
    `ID` VARCHAR(255),
    `Field 1` VARCHAR(255),
    `Field 2` VARCHAR(255),
    `Field 3` VARCHAR(255),
    `Field 4` VARCHAR(255),
    `Field 5` VARCHAR(255),
    `Field 6` VARCHAR(255),    
    `Field 7` longtext) TYPE=MyISAM DEFAULT CHARSET=utf8;

INSERT IGNORE INTO table_2 (`ID`,`Field 1`,`Field 2`,`Field 3`,`Field 4`,`Field 5`,`Field 6`,`Field 7`) VALUES  
('1','Содержимое Field 2 - 1','Содержимое Field 3 - 1','Содержимое Field 4 - 1','Содержимое Field 5 - 1','Содержимое Field 6 - 1','Содержимое Field 7 - 1','Содержимое Field 8 - 1'),
('2','Содержимое Field 2 - 2','Содержимое Field 3 - 2','Содержимое Field 4 - 2','Содержимое Field 5 - 2','Содержимое Field 6 - 2','Содержимое Field 7 - 2','Содержимое Field 8 - 2'),
('3','Содержимое Field 2 - 3','Содержимое Field 3 - 3','Содержимое Field 4 - 3','Содержимое Field 5 - 3','Содержимое Field 6 - 3','Содержимое Field 7 - 3','Содержимое Field 8 - 3')

Чтоб вставить строки из table_1 в table_2 использую запрос

INSERT INTO table_2 (`ID`,`Field 4`, `Field 5`, `Field 6`, `Field 7`) 
SELECT * FROM table_1

Скажите как быть с ID в table_2
Сейчас он начинается не с ID+1 (ID для table_2), а с 1 как в table_1
Ни проверите запрос?
Как в select выбрать поля которые будут вставляться, может там нужно исключить всё кроме ID (SELECT * FROM table_1)

  Ответить  
 
 автор: cheops   (07.01.2012 в 14:07)   письмо автору
 
   для: pautina   (07.01.2012 в 11:28)
 

Лучше в таких запросах не использовать звездочки, а прописывать все столбцы явно, это позволит для отдельных столбцов задавать нужные вам значения (добавьте во вторую таблицу первичный ключ с атрибутом AUTO_INCREMENT)
INSERT INTO table_2
  (`ID`,
   `Field 1`,
   `Field 2`,
   `Field 3`,
   `Field 4`,
   `Field 5`,
   `Field 6`,
   `Field 7`)  
SELECT
   NULL,
   "",
   "",
   "",
   `Field 1`,
   `Field 1`,
   `Field 1`
FROM table_1

  Ответить  
 
 автор: pautina   (07.01.2012 в 15:06)   письмо автору
 
   для: cheops   (07.01.2012 в 14:07)
 

Спасибо всё работает.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования