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

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

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

Восстановить пароль
Повторная активизация e-mail

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

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

Получается запрос будет выглядеть так:
create table 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
Я правильно понял?
Владимир1989 вне форума Ответить с цитированием
Старый 08.02.2013, 11:53   #12
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

нет.
в Oracle это будет выглядеть примерно так:
Код:
create table table3 as select table1.nameklient, table1.tovar,table1.kol-vo,table2.Cena,table2.DataProdashi 
from magazin.table1 inner join magazin.table2 on table1.id = table2.id
вы забыли ключевое слово as
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.02.2013, 12:50   #13
Владимир1989
Пользователь
 
Регистрация: 25.09.2012
Сообщений: 30
По умолчанию

получилось выполнить запрос. Я пытался еще добавить поле name. Оно в таблицу есть, но почему-то когда выполняю запрос, выходит ошибка именно на это поле name. В чем может быть причина?
Владимир1989 вне форума Ответить с цитированием
Старый 08.02.2013, 12:56   #14
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Потому что не стоит так поля называть - name видимо для Oracle одно из ключевых слов. Можно попробовать сослаться на него как "name"
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 08.02.2013, 13:42   #15
Владимир1989
Пользователь
 
Регистрация: 25.09.2012
Сообщений: 30
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Потому что не стоит так поля называть - name видимо для Oracle одно из ключевых слов. Можно попробовать сослаться на него как "name"
Пробовал поставить в кавычки, не помогло. Поле name не могу изменить, т.к. в базе нельзя менять название этого поля. Есть еще какие - нибудь варианты?
Владимир1989 вне форума Ответить с цитированием
Старый 08.02.2013, 14:08   #16
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

1-х, какая ошибка возникает (у неё есть код и текст)?!

2-х, давайте вариант запроса, который у Вас не работает.

да, и ещё, меня терзают смутные сомнения.. А Вы таблицу table3 не забываете удалить перед выполнением create table table3 .... ?!??!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.02.2013, 14:50   #17
Владимир1989
Пользователь
 
Регистрация: 25.09.2012
Сообщений: 30
По умолчанию

create table table3 as select table1.nameklient, table1.tovar, tovar1.name,table1.kol-vo,table2.Cena,table2.DataProdashi, table2.name
from magazin.table1 inner join magazin.table2 on table1.id = table2.id

Поля name в table1 и в table2 разные
ошибка
ERROR: column name "name" specified more than once

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

create table table3 as select table1.nameklient, table1.tovar, tovar1.name,table1.kol-vo,table2.Cena,table2.DataProdashi, table2.name
А сразу не видно почему? Как создастся таблица с полями с одним именем? Можно псевдоним использовать table2.name AS name2, тогда поле с именем name2 будет создаваться
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 08.02.2013, 15:05   #19
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Вы поле name используете ДВАЖДЫ. о чём он Вам и пишет.
используйте псевдонимы!

например, так:
Код:
create table table3 
as select table1.nameklient, 
  table1.tovar, 
  tovar1.name as TovarName, 
  table1.kol-vo,
  table2.Cena,
  table2.DataProdashi, 
  table2.name as ProdashaName 
from magazin.table1 
inner join magazin.table2 on table1.id = table2.id
имена TovarName и ProdashaName, разумеется, написаны для примера - можете любые другие использовать, лишь бы они не повторялись, не были ключевыми словами СУБД и были нормальными идентификаторами (буква + буквоцифрыподчеркивания...)

Последний раз редактировалось Serge_Bliznykov; 08.02.2013 в 15:08.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 09.02.2013, 09:26   #20
Владимир1989
Пользователь
 
Регистрация: 25.09.2012
Сообщений: 30
По умолчанию

Спасибо ребят, все получилось, запрос работает!
Владимир1989 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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