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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.05.2017, 01:18   #1
Вовантус
Пользователь
 
Регистрация: 24.05.2012
Сообщений: 16
По умолчанию Заполнение таблицы

Уважаемые знатоки SQL ,
имеется таблица
"клиенты"
| id | fio | date |

также имеется вторая таблица
"покупки"
| fio | date |

подскажите такой вопрос , как написать SQL-запрос что бы таблица "клиенты" заполнялась из таблицы "покупки"
Вовантус вне форума Ответить с цитированием
Старый 17.05.2017, 10:15   #2
hoolygan
Пользователь
 
Регистрация: 11.04.2017
Сообщений: 64
По умолчанию

Id - автоинкремент?
если честно - то непонятна ситуация, что значит заполнялся из другой таблицы - а по какому условию?
перенос из одной в другую -
Код:
insert klients (fio, date)
select fio, date from purchases
можно условие прикручивать, можно вставлять только те значения, которых нету, можно компоновать, что угодно - но задача поставлена не совсем корректно.
hoolygan вне форума Ответить с цитированием
Старый 17.05.2017, 15:26   #3
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
Сообщение от Вовантус Посмотреть сообщение
как написать SQL-запрос что бы таблица "клиенты" заполнялась из таблицы "покупки"
Таблица "клиенты" не должен заполнять из таблици "покупки" , потому что один клиент можеть будеть покупать (несколько товар) на пример
-- Васия Пупкин
на одну входе купил
1) Чай
2) Сахар
3) Кофе
4) Хлеб
это же разние таблица и вы должен выбрать это SELECT-е
Код:
[QUOTE=[B]hoolygan[/B];1680947]insert klients (fio, date)
select fio, date from purchases
hoolygan бессмысленно.
Цитата:
можно условие прикручивать, можно вставлять только те значения, которых нету, можно компоновать, что угодно - но задача поставлена не совсем корректно.
Думаю стоит почитать (связь один ко многим) Книга: Программирование баз данных Microsoft SQL Server 2005. Базовый курс
Изображения
Тип файла: jpg 7.jpg (123.8 Кб, 138 просмотров)
Тип файла: jpg 8.jpg (136.7 Кб, 147 просмотров)
Тип файла: jpg 9.jpg (134.3 Кб, 153 просмотров)
Тип файла: jpg 10.jpg (108.9 Кб, 163 просмотров)
xxbesoxx вне форума Ответить с цитированием
Старый 17.05.2017, 22:58   #4
Вовантус
Пользователь
 
Регистрация: 24.05.2012
Сообщений: 16
По умолчанию

скрипт одноразовый , нужно поставить date в таблице "клиенты" , у каждого fio должна стоять
date из таблицы "покупки"

названия таблиц взяты для примера от балды , т.е. может лучше так звучать будет
, что бы не вводить в заблуждение,
таблица "Т1"
и таблица "Т2"

нужно что бы у каждого Т1.fio - Т1.date был равен Т2.date

select * from Т1 ЕСЛИ Т1.fio =Т2.fio ТОГДА insert Т1( Т2.date)

это естественно не правильно , но смысл примерно такой

Последний раз редактировалось Аватар; 18.05.2017 в 11:41.
Вовантус вне форума Ответить с цитированием
Старый 18.05.2017, 09:41   #5
hoolygan
Пользователь
 
Регистрация: 11.04.2017
Сообщений: 64
По умолчанию

Все равно не понятно.
1 случай - если в Т1 уже есть записи - то
Код:
Update t
set t.Date = t2.Date
From Table2 t2
inner join Table1 t ON t2.fio = t.fio
where isnull(t2.date, '') <> isnull(t.date, '')
т.е. обновляем записи в том случае, если совпадают фамилии
2 случай - когда в T1 нету записей
Код:
INSERT T1 (fio, date)
SELECT fio, date FROM T2
where not exists (select 1 from t1 where t1.fio = t2.fio)
как то так.
hoolygan вне форума Ответить с цитированием
Старый 18.05.2017, 09:59   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Пусть ТС скажет какая СУБД. Например from в update далеко не в каждой СУБД поддерживается
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 18.05.2017, 11:32   #7
Вовантус
Пользователь
 
Регистрация: 24.05.2012
Сообщений: 16
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Пусть ТС скажет какая СУБД.
СУБД HyTech

Цитата:
Сообщение от hoolygan Посмотреть сообщение
Все равно не понятно.
выставлять только совпавшие по fio записи

т.е. в таблице "Т1" поле date должно быть равно date из таблицы "Т2"

Последний раз редактировалось Аватар; 18.05.2017 в 11:41.
Вовантус вне форума Ответить с цитированием
Старый 18.05.2017, 11:40   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
HyTech
Упс, первый раз слышу. Интересно, кто-то из форумчан работает на такой?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 18.05.2017, 11:42   #9
Вовантус
Пользователь
 
Регистрация: 24.05.2012
Сообщений: 16
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Упс, первый раз слышу. Интересно, кто-то из форумчан работает на такой?
та там SQL-89

http://hytechdb.ru/

Последний раз редактировалось Аватар; 18.05.2017 в 12:13.
Вовантус вне форума Ответить с цитированием
Старый 18.05.2017, 11:51   #10
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

По-моему SQL-89 не использует from для update. Вложенные запросы городить ))
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заполнение таблицы King_Of_Arthur БД в Delphi 0 10.07.2013 07:33
заполнение таблицы beginner09 Microsoft Office Access 4 09.05.2013 12:10
Заполнение таблицы Ardarik БД в Delphi 2 27.02.2013 20:48
Макрос: заполнение таблицы данными из другой таблицы с автоматическим добавлением строк yevgeniy.demidov Microsoft Office Excel 6 06.09.2012 15:27
Заполнение таблицы arkvid Microsoft Office Excel 10 17.11.2010 18:32