sql Запрос
Есть 2 таблицы
id question show и id answer qid
как написать запрос, чтобы при его срабатывании в первую таблицу ложился себе спокойно вопрос, а во вторую определенное количество вариантов ответа, при чем qid этих ответов (вторая таблица) должен совпадать с id в первой таблице и выполнялось одним запросом.
Вопрос один - ответов много.
Это все что можно ответить на поставленый вопрос...
[/COLOR][/SIZE]
Что именно надо? Ты неможешь обычный инсерт написать? или ты хочешь сделать одним инсертом вставку в две таблицы?
а я б вообще сделал одной таблицей и в таблицу вопросов добавил поле типа XML в которой хранились бы сколько надо ответов ;)
Цитата: bagie2
а я б вообще сделал одной таблицей и в таблицу вопросов добавил поле типа XML в которой хранились бы сколько надо ответов ;)
:eek: Мисье знает толк в извращениях...
почему сразу извращения))) очень даже удобно благо в разные СУБД встраивают поддержку таких фич и XPath\XQuery. конечно надо рассматривать конкретно ситуацию ибо может оказаться и не приемлемым, но одним из вариантов решения поставленной ТС задачи уж точно являться может
Так дял выборки я строю запос с одним джином и забираю данные в окончательном формате. Отсатется только вывести.
В случае ХМЛ, я сперва забираю данные, потом расшифровываю их, а потом только вывожу. где профит? Не говоря уже о необходимости редактирования сохраненных данных.
Например удалить один вариант ответа - один DELETE, в случае ХМЛ, формирование новой ХМЛ-записи и UPDATE.....
а обновление\вставка\удаление - http://msdn.microsoft.com/en-us/library/ms177454.aspx
//ну это я пример для Microsoft SQL Server даю. все делается одним запросом на уровне сервера, а в клиентском приложении тока параметры передавай.
хм. сорри . я по привычке подумал, что раздел ВэбПрограмминг. а это общий оказывается
автор вообще не указал какая СУБД, так что вот и сидим гадаем:)
Цитата: bagie2
а я б вообще сделал одной таблицей и в таблицу вопросов добавил поле типа XML в которой хранились бы сколько надо ответов ;)
а еще можно в одно поле и вопрос и ответы затолкать, тоже в xml-е
вариант №2. оформить всё это дело (вставка в таблицы) в хранимую процедуру
вариант №3. триггер table2 on insert и значит при вставке в таблицу2 мы толкаем данные в таблицу1 но тогда наверное придется временное поле делать для вопроса в table2 а потом триггер его почистит после вставки в table1) но как то тут надо оптимизировать
Цитата:
а еще можно в одно поле и вопрос и ответы затолкать, тоже в xml-е
туда можно всю строку таблицы затолкать даже PK))) но тормоза будут, так что лучше не злоупотреблять