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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.03.2010, 20:12   #1
Лубышев
Участник клуба
 
Аватар для Лубышев
 
Регистрация: 23.07.2007
Сообщений: 1,054
Вопрос Запись в несколько таблиц нескольких записей

Вопрос такой:

есть какая то структура... допустим три таблицы. В одной какие то данные и во второй... а третья это связующая таблица(раскрывает много ко многим)

Как мне за один запрос реализовать следующее?

Найти запись в таблице1
Найти запись в таблице 2
Установить соответствие заняся айдишники этих записей в таблицу 3
P.S. база SQL Server или access


И можно ли это сделать с еще не добавленными записями? ну типа записать в таблицу 1 данные и тут же узнать айдишник записи и тут же тоже самое сделать со второй и записать айдишники записей в третью таблицу??
Писано по д'Эльфийски

Последний раз редактировалось Лубышев; 20.03.2010 в 20:34.
Лубышев вне форума Ответить с цитированием
Старый 21.03.2010, 21:38   #2
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

по-моему, для этих целей служат триггеры. А, может быть, все это делать в скрипте самом или проге (смотря что там у вас)?
motorway вне форума Ответить с цитированием
Старый 21.03.2010, 22:16   #3
Лубышев
Участник клуба
 
Аватар для Лубышев
 
Регистрация: 23.07.2007
Сообщений: 1,054
По умолчанию

вот и дело в том что я делаю все это в программе сам. то есть сначала пишу запись... потом запросом я считываю айдишник, потом пишу во вторую таблицу и делаю то же самое. а потом уже пишу связи... че то больно грамоздко и медленно получается. а мне кажется что намного быстрее будет если к базе обращаться как можно реже... и не охото лишних временных переменных создавать в проге. с тригеррами баз данных я практически не знаком и вряд ли смогу че нить с ними сделать...
Писано по д'Эльфийски
Лубышев вне форума Ответить с цитированием
Старый 21.03.2010, 23:09   #4
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Я тоже не очень знаком, просто навожу на возможное решение. Иногда можно просто нагуглить какой-нибудь простой код.
Может, вы покажете пример, как все это должно происходить, какие там данные выбираются?
Именно 1 запрос не всегда может быть быстрее нескольких. Проблема именно в скорости? Есть критические места по ней?
motorway вне форума Ответить с цитированием
Старый 22.03.2010, 19:53   #5
Лубышев
Участник клуба
 
Аватар для Лубышев
 
Регистрация: 23.07.2007
Сообщений: 1,054
По умолчанию

ну если я обьясню всю задачу это еще больше запутает... У меня тема диплома жестко называется: "Информационная технология извлечения и дизинтыграции фактологических таблиц из интернета"

Так что лучше в это все не вдаваться.

Просто за один запрос мне надо произвести запись и чтение одновременно... то есть записать запись и тут же узнать ее айдишник... и тут же произвести поиск по второй таблице и после того как два айдишника нашлись записать оба в третью таблицу... а скорость вообще то возрастет на много и даже не в два и не в три раза а по моим предположениям в сотни раз
Писано по д'Эльфийски
Лубышев вне форума Ответить с цитированием
Старый 22.03.2010, 20:23   #6
Лубышев
Участник клуба
 
Аватар для Лубышев
 
Регистрация: 23.07.2007
Сообщений: 1,054
По умолчанию

ладно попробую еще упростить задачу... допустим данные записаны уже.
мне надо установить связь между данными... - заполнить третью таблицу

Код:
(select id1 from table1 where caption2='что_то')
данное_1
Код:
 (select id2 from table2 where caption1='что_то')
данное_2

Код:
insert itno table3 (id1,id2) value (данное_1, данное_2)
это за один запрос можно реализовать? у меня просто это в цикле гонится и он очень сильно напоминает бесконечный - почти что не прерывный - это как бы сервер у меня будет который непрерывно обрабатывает данные
Писано по д'Эльфийски

Последний раз редактировалось Лубышев; 22.03.2010 в 22:41.
Лубышев вне форума Ответить с цитированием
Старый 22.03.2010, 22:09   #7
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Иногда такие запросы можно делать вложенные, в данном случае не знаю, обычно зависит от базы. И будет ли такой 1 запрос лучше нескольких... Бесконечных циклов допускать не надо, а то, что запросов много - ну это часто бывает, даже на тех же форумах.
motorway вне форума Ответить с цитированием
Старый 22.03.2010, 22:40   #8
Лубышев
Участник клуба
 
Аватар для Лубышев
 
Регистрация: 23.07.2007
Сообщений: 1,054
По умолчанию

В некорорых задачах нужны циклы такие... а вообще каждое обращение к базе серьезно тормозит программу. А цикл хоть и бесконечный но работает в потоке и управляем... Ну это сейчас не важно...(это все работает)

А вот нужно мне уменьшить число запросов к базе... база SQL Server ну или пока что Access
Писано по д'Эльфийски

Последний раз редактировалось Лубышев; 22.03.2010 в 22:43.
Лубышев вне форума Ответить с цитированием
Старый 09.04.2010, 17:42   #9
GothicAr
Новичок
Джуниор
 
Регистрация: 09.04.2010
Сообщений: 2
По умолчанию

Цитата:
Сообщение от Лубышев Посмотреть сообщение
Код:
(select id1 from table1 where caption2='что_то')
данное_1
Код:
 (select id2 from table2 where caption1='что_то')
данное_2
Код:
insert itno table3 (id1,id2) value (данное_1, данное_2)
а якщо використати підзапит:
Код:
insert into table3 (id1, id2) select id1, id2 from table1 join table2 on caption2 ='___' and caption1 ='___';
GothicAr вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чтение нескольких записей в TList ? spamer Общие вопросы Delphi 10 30.10.2009 17:07
Формирование нескольких сводных таблиц FormAlDeGid Microsoft Office Excel 0 24.10.2009 12:04
Удаление нескольких записей Hobbit_88 БД в Delphi 5 23.04.2009 17:18
добавления нескольких записей в MS Acces opel.omega БД в Delphi 276 27.12.2008 09:22
Поиск нескольких записей VenMaster БД в Delphi 1 14.06.2008 22:48