Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.02.2013, 06:40   #1
Владимир1989
Пользователь
 
Регистрация: 25.09.2012
Сообщений: 30
По умолчанию

Добрый день. Подскажите пожалуйста как правильно написать запрос.
К примеру: В базе magazin есть таблицы table1, table2, table3.
Таблицы table1,table2 связаны по полю id.
В таблице: table1 есть поля id,nameklient,tovar,kol-vo.
В таблице: table2 есть поля id,Cena,DataPostuplenya,DataProdash i.
Как то так.
Вообщем необходимо вывести информацию из записать в table3 такие поля как: nameKlient,tovar,kol-vo,Cena,DataProdashi. Вывод информации я понимаю, можно сделать так (запрос указал ниже), а как записать это все в table3? И правильно ли я написал сам запрос? Подскажите пожалуйста.

Как правильно реализовать запрос, подскажите пожалуйста.
SELECT table1.nameklient, table1.tovar,table1.kol-vo,table2.Cena,table2.DataProdashi from magazin.table1 inner join magazin.table2 on table1.id = table2.id

Запрос выводит данные, но как эти данные теперь записать в table3??? Подскажите пожалуйста.

Последний раз редактировалось Stilet; 07.02.2013 в 15:23.
Владимир1989 вне форума Ответить с цитированием
Старый 07.02.2013, 12:09   #2
Diamand
Форумчанин
 
Аватар для Diamand
 
Регистрация: 07.04.2007
Сообщений: 102
По умолчанию

Здравствуйте вот конструкция для вставки значений в таблицу

INSERT INTO <имя таблицы>[(<имя столбца>,...)]
{VALUES (< значение столбца>,…)}
| <выражение запроса>
| {DEFAULT VALUES};

в вашем случю думаю так

INSERT INTO table3 (можно явно указать поля)
SELECT table1.nameklient, table1.tovar,table1.kol-vo,table2.Cena,table2.DataProdashi from magazin.table1 inner join magazin.table2 on table1.id = table2.id;

только количество и типы полей должны совпадать и ещё
*
При вставке в таблицу проверяются все ограничения на данную таблицу. может быть ограничения первичного ключа или уникального индекса, проверочные ограничения типа chek, ограничения ссылочной целостности. В случае нарушения ограничения вставки не будет будет.
Diamand вне форума Ответить с цитированием
Старый 07.02.2013, 12:52   #3
Владимир1989
Пользователь
 
Регистрация: 25.09.2012
Сообщений: 30
По умолчанию

На данный момент в table3 нет ни одного поля, фактически пустая таблица.
Чтобы найти по запросу и скопировать данные, я должен сначала в table3 создать все те поля, которые я ищу и после чего сделать запрос. Я правильно понял?
Владимир1989 вне форума Ответить с цитированием
Старый 07.02.2013, 13:00   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
На данный момент в table3 нет ни одного поля
Это как? Если нет ни одного поля, то и table3 как таковой нет. Её создать нужно с необходимой структурой.
Или я чего-то не понял в этой жизни? Вариант без предварительного создания Table3 есть и имеет примерно следующий вид
Код:
SELECT ...
  INTO Table3
  FROM ...
  WHERE ...
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 07.02.2013 в 13:02.
Аватар вне форума Ответить с цитированием
Старый 07.02.2013, 14:01   #5
Владимир1989
Пользователь
 
Регистрация: 25.09.2012
Сообщений: 30
По умолчанию

да так и есть. Таблица table3 есть, но полей нет. Я туда хочу записать те данные, которые ищу по запросу.
Запрос тогда будет выглядеть так:
SELECT table1.nameklient, table1.tovar,table1.kol-vo,table2.Cena,table2.DataProdashi into table3 from magazin.table1 inner join magazin.table2 on table1.id = table2.id

так получается?
Владимир1989 вне форума Ответить с цитированием
Старый 07.02.2013, 14:15   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Если делать так, то обязательное условие - таблицы table3 на момент выполнения запроса не должно существовать
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 07.02.2013, 14:46   #7
Владимир1989
Пользователь
 
Регистрация: 25.09.2012
Сообщений: 30
По умолчанию

Не совсем понимаю, как тогда будет выглядеть условие на создание таблицы table3 в этом же запросе
Владимир1989 вне форума Ответить с цитированием
Старый 07.02.2013, 14:50   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Структура table3 создастся по перечню полей из SELECT-а с теми же именами, типами и в том же порядке
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 07.02.2013, 14:53   #9
Владимир1989
Пользователь
 
Регистрация: 25.09.2012
Сообщений: 30
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Структура table3 создастся по перечню полей из SELECT-а с теми же именами, типами и в том же порядке
Да, как раз я это и хотел сделать, но как правильно написать запрос не совсем понимаю
Владимир1989 вне форума Ответить с цитированием
Старый 07.02.2013, 15:14   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Да, как раз я это и хотел сделать, но как правильно написать запрос не совсем понимаю
ну, в пост #6 Вы написали код.
Чем он Вас не устроил?



кстати, а какая у Вас СУБД ? С созданием новой таблицы из запроса есть нюансы в разных СУБД. например, в Oracle это выглядит как
Код:
create table Table3 as select ......
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как при двух зажатых клавишах, выводить третью нажатую Matadora Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 21.09.2012 00:08
Выбор одинаковых данных из двух таблиц и перенос в третью Рыбёшка Microsoft Office Excel 4 27.08.2012 20:04
Как свести данные из двух ячеек в одну (третью)? oksundel Помощь студентам 1 30.05.2012 14:25
Перенос значений столбцов из двух книг в третью zagzag228 Microsoft Office Excel 1 29.06.2011 16:56
Как в С++ вывести(записать ) информацию в файл, когда инфа находится в методе класса? Artur_cod Общие вопросы C/C++ 1 06.05.2007 00:34