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

Форум MySQL

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

 

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

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

тема: Слить данные из 3 таблиц в одну
 
 автор: serjinio   (04.08.2009 в 15:43)   письмо автору
 
 

Есть три таблицы надо из каждой таблицы данные из выборочных столбцы слить в одну таблицу как такое сделать? много записей очень долго вручную загонять

  Ответить  
 
 автор: Trianon   (04.08.2009 в 16:15)   письмо автору
 
   для: serjinio   (04.08.2009 в 15:43)
 

три запроса INSERT .. SELECT
Что долго-то?

  Ответить  
 
 автор: serjinio   (04.08.2009 в 16:20)   письмо автору
 
   для: Trianon   (04.08.2009 в 16:15)
 

SELECT нужные поля таблицы1
while( )
{
INSERT вставить значение этих полей в другую таблицу
}

???

  Ответить  
 
 автор: Trianon   (04.08.2009 в 16:22)   письмо автору
 
   для: serjinio   (04.08.2009 в 16:20)
 

Нет.
INSERT ... SELECT

Вы не знаете, где справочник по SQL-запросам лежит?

  Ответить  
 
 автор: serjinio   (04.08.2009 в 17:34)   письмо автору
 
   для: Trianon   (04.08.2009 в 16:22)
 

$q_new = mysql_query("INSERT INTO `new_table` ( name_1 , name_2 , name_3, name_4 , name_5 ) 
(
 ("SELECT x_1, x_2, x_3, x_4, x_5 FROM table_1")
 UNION
 ("SELECT w_1, w_2, w_3, w_4, w_5 FROM table_2")
 UNION
 ("SELECT s_1, s_2, s_3, s_4, s_5 FROM table_3")


",$db);

???

  Ответить  
 
 автор: Trianon   (04.08.2009 в 17:50)   письмо автору
 
   для: serjinio   (04.08.2009 в 17:34)
 

:-Ооооо

Вы уж мухи от котлет SQL-код от PHP-кода отделили бы сперва

  Ответить  
 
 автор: serjinio   (04.08.2009 в 17:55)   письмо автору
 
   для: Trianon   (04.08.2009 в 17:50)
 

INSERT INTO `new_table` ( name_1 , name_2 , name_3, name_4 , name_5 ) 
(
 ( SELECT x_1, x_2, x_3, x_4, x_5 FROM table_1 )
 UNION
 ( SELECT w_1, w_2, w_3, w_4, w_5 FROM table_2 )
 UNION
 ( SELECT s_1, s_2, s_3, s_4, s_5 FROM table_3 )

  Ответить  
 
 автор: Trianon   (04.08.2009 в 17:57)   письмо автору
 
   для: serjinio   (04.08.2009 в 17:55)
 

Лишние скобки.
Хотя может и так пройдет.
Но я бы убрал.

  Ответить  
 
 автор: serjinio   (04.08.2009 в 19:31)   письмо автору
 
   для: Trianon   (04.08.2009 в 17:57)
 

не хочет работать не с UNION ALL не UNION пишет синтаксическая ошибка
по отдельности вставляет
INSERT INTO `new_table` ( name_1 , name_2 , name_3, name_4 , name_5 ) 
(
 SELECT x_1, x_2, x_3, x_4, x_5 FROM table_1
)

INSERT INTO `new_table` ( name_1 , name_2 , name_3, name_4 , name_5 ) 
(
SELECT '', w_2, '', w_4,'' FROM table_2
)


пробовал через временную таблицу
CREATE TEMPORARY TABLE `ttt`
SELECT x_1, x_2, x_3, x_4, x_5 FROM table_1 
 UNION  SELECT w_1, w_2, w_3, w_4, w_5 FROM table_2
 UNION SELECT s_1, s_2, s_3, s_4, s_5 FROM table_3

создается .но когда из неё вставляю в новую таблицу то пишет ошибка синтаксиса INSERT

CREATE TEMPORARY TABLE `ttt`
SELECT x_1, x_2, x_3, x_4, x_5 FROM table_1 
 UNION  SELECT w_1, w_2, w_3, w_4, w_5 FROM table_2
 UNION SELECT s_1, s_2, s_3, s_4, s_5 FROM table_3

INSERT INTO `new_table` ( name_1 , name_2 , name_3, name_4 , name_5 ) 
(
SELECT * FROM `ttt`
)

  Ответить  
 
 автор: Trianon   (04.08.2009 в 21:41)   письмо автору
 
   для: serjinio   (04.08.2009 в 19:31)
 

>не хочет работать не с UNION ALL не UNION пишет синтаксическая ошибка

код и диагностику в студию.

Хотя вообще-то я не понимаю, почему в три запроса не обойтись.

  Ответить  
 
 автор: serjinio   (04.08.2009 в 23:06)   письмо автору
 
   для: Trianon   (04.08.2009 в 21:41)
 

SQL-запрос:

INSERT INTO `description` ( d_cat, d_url, d_title, d_key, d_descr, d_text ) (
SELECT a_cat, a_url, a_title, a_meta_k, a_descr, a_text
FROM articles
UNION
SELECT photo_cat, photo_url, photo_title, photo_key, photo_desc, photo_text
FROM photo
UNION
SELECT v_cat, v_url, v_title, '','' , v_about_movie
FROM video

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UNION
SELECT photo_cat, photo_url, photo_title , photo_key, photo_desc, photo_' at line 4

 SQL-запрос: 

INSERT INTO `description` ( d_cat, d_url, d_title, d_key, d_descr, d_text ) (
SELECT photo_cat, photo_url, photo_title, photo_key, photo_desc, photo_text
FROM photo
UNION
SELECT a_cat, a_url, a_title, a_meta_k, a_descr, a_text
FROM articles
UNION
SELECT v_cat, v_url, v_title, '', '', v_about_movie
FROM video

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UNION
SELECT a_cat, a_url, a_title, a_meta_k, a_descr, a_text
FROM articles
U' at line 5


Все запросы по отдельности вставляют данные без проблем...
Добавлены ряды: 14
Вставить id ряда: 1 (Запрос занял 0.0184 сек)
SQL-запрос: 
INSERT INTO `description` ( d_cat, d_url, d_title, d_key, d_descr, d_text ) (
SELECT a_cat, a_url, a_title, a_meta_k, a_descr, a_text
FROM articles
)
Ваш SQL-запрос был успешно выполнен (Запрос занял 0.1082 сек)
SQL-запрос: 
INSERT INTO `description` ( d_cat, d_url, d_title, d_key, d_descr, d_text ) (
SELECT photo_cat, photo_url, photo_title, photo_key, photo_desc, photo_text
FROM photo
)

Ваш SQL-запрос был успешно выполнен (Запрос занял 0.0690 сек)
SQL-запрос: 
INSERT INTO `description` ( d_cat, d_url, d_title, d_key, d_descr, d_text ) (
SELECT v_cat, v_url, v_title, '', '', v_about_movie
FROM video
)

  Ответить  
 
 автор: Trianon   (05.08.2009 в 01:36)   письмо автору
 
   для: serjinio   (04.08.2009 в 23:06)
 

а скобки вокруг объединения зачем?

  Ответить  
 
 автор: serjinio   (05.08.2009 в 10:17)   письмо автору
 
   для: Trianon   (05.08.2009 в 01:36)
 

Без скобок заработало !!!! Trianon, спасибо за помощь
А можно нескромно задать еще вопрос ,почему не прошел вариант с временной таблицей что я пробовал выше?

  Ответить  
 
 автор: Trianon   (05.08.2009 в 11:31)   письмо автору
 
   для: serjinio   (05.08.2009 в 10:17)
 

Операторы нужно разделять. Наверное поэтому.

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

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