|
|
|
| Здравствуйте Уважаемое сообщество.
У меня есть БД 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 запрос для этого использовать? | |
|
|
|
|
|
|
|
для: pautina
(06.01.2012 в 08:33)
| | Для этого используют запрос INSERT ... SELECT
INSERT INTO table_2 (id, name_2, content_2 , img_2)
SELECT * FROM table_1
| Остальным четырем столбцам будут назначены значения по умолчанию. | |
|
|
|
|
|
|
|
для: 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) | |
|
|
|
|
|
|
|
для: 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
|
| |
|
|
|
|
|
|
|
для: cheops
(07.01.2012 в 14:07)
| | Спасибо всё работает. | |
|
|
|
|