Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

sql Запрос

63K
12 октября 2010 года
ZL0D3Y
1 / / 12.10.2010
В общем просьба помочь у меня такого характера.
Есть 2 таблицы
id question show и id answer qid


как написать запрос, чтобы при его срабатывании в первую таблицу ложился себе спокойно вопрос, а во вторую определенное количество вариантов ответа, при чем qid этих ответов (вторая таблица) должен совпадать с id в первой таблице и выполнялось одним запросом.

Вопрос один - ответов много.
274
12 октября 2010 года
Lone Wolf
1.3K / / 26.11.2006
[SIZE="1"][COLOR="SlateGray"]Ну руками наверно... Берем руки, клавиатуру и пишем..
Это все что можно ответить на поставленый вопрос...
[/COLOR][/SIZE]
Что именно надо? Ты неможешь обычный инсерт написать? или ты хочешь сделать одним инсертом вставку в две таблицы?
8.2K
12 октября 2010 года
bagie2
299 / / 26.10.2008
а я б вообще сделал одной таблицей и в таблицу вопросов добавил поле типа XML в которой хранились бы сколько надо ответов ;)
274
12 октября 2010 года
Lone Wolf
1.3K / / 26.11.2006
Цитата: bagie2
а я б вообще сделал одной таблицей и в таблицу вопросов добавил поле типа XML в которой хранились бы сколько надо ответов ;)



:eek: Мисье знает толк в извращениях...

8.2K
12 октября 2010 года
bagie2
299 / / 26.10.2008
почему сразу извращения))) очень даже удобно благо в разные СУБД встраивают поддержку таких фич и XPath\XQuery. конечно надо рассматривать конкретно ситуацию ибо может оказаться и не приемлемым, но одним из вариантов решения поставленной ТС задачи уж точно являться может
274
12 октября 2010 года
Lone Wolf
1.3K / / 26.11.2006
чем оно может оказатся удобней.
Так дял выборки я строю запос с одним джином и забираю данные в окончательном формате. Отсатется только вывести.
В случае ХМЛ, я сперва забираю данные, потом расшифровываю их, а потом только вывожу. где профит? Не говоря уже о необходимости редактирования сохраненных данных.
Например удалить один вариант ответа - один DELETE, в случае ХМЛ, формирование новой ХМЛ-записи и UPDATE.....
8.2K
12 октября 2010 года
bagie2
299 / / 26.10.2008
выборка из XML тоже одним запросом делается,
а обновление\вставка\удаление - http://msdn.microsoft.com/en-us/library/ms177454.aspx

//ну это я пример для Microsoft SQL Server даю. все делается одним запросом на уровне сервера, а в клиентском приложении тока параметры передавай.
274
12 октября 2010 года
Lone Wolf
1.3K / / 26.11.2006
хм. сорри . я по привычке подумал, что раздел ВэбПрограмминг. а это общий оказывается
8.2K
12 октября 2010 года
bagie2
299 / / 26.10.2008
автор вообще не указал какая СУБД, так что вот и сидим гадаем:)
1.8K
12 октября 2010 года
LM(AL/M)
332 / / 20.12.2005
Цитата: bagie2
а я б вообще сделал одной таблицей и в таблицу вопросов добавил поле типа XML в которой хранились бы сколько надо ответов ;)



а еще можно в одно поле и вопрос и ответы затолкать, тоже в xml-е

8.2K
12 октября 2010 года
bagie2
299 / / 26.10.2008
если другие варианты по теме, то еще что могу придумать:
вариант №2. оформить всё это дело (вставка в таблицы) в хранимую процедуру
вариант №3. триггер table2 on insert и значит при вставке в таблицу2 мы толкаем данные в таблицу1 но тогда наверное придется временное поле делать для вопроса в table2 а потом триггер его почистит после вставки в table1) но как то тут надо оптимизировать

Цитата:
а еще можно в одно поле и вопрос и ответы затолкать, тоже в xml-е


туда можно всю строку таблицы затолкать даже PK))) но тормоза будут, так что лучше не злоупотреблять

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог