[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Возможно ли написать такой запрос
Страницы: 1, 2
vagrand
Valick
Цитата
как вариант можно перенести correct_answer во вторую таблицу, тогда третья таблица будет не нужна, и кстати что такое title?


Если один ответ может использоваться только для одного вопроса то да, но бывают случаи когда он может подходить для разных. ну title вроде как заголовок. Не знаю нужен он или нет, написал с потолка. Что касается переноса correct_answer в таблицу с ответами то опять же для случая ТС нужен будет JOIN.

_____________
Senior PHP developer: PHP5, MySQL, JavaScript, CakePHP, Yii/Yii2, Zend Framework, Smarty, XML/Xslt, JQuery, Jquery Mobile, Bootstrap, ExtJS, HTML, HTML5, CSS, Linux, SVN, Git, Memcached, Redis, MongoDB, Zend Guard, Ioncube, FFMpeg, PayPal, Webmoney, Qiwi, Facebook API, Vkontakte Api, Google API, Twitter Api, Steam Api.
Junior Android Developer: Android SDK, многопоточность, работа с HTTP запросами, JSON, SQLite, фрагменты.
Valick
Цитата
Что касается переноса correct_answer в таблицу с ответами то опять же для случая ТС нужен будет JOIN

ну для отправки вопроса и ответов клиенту он будет нужен в любом случае, и эти же данные сожно сохранить в сессии, что позволит проверять от вет без обращения к БД


_____________
Стимулятор ~yoomoney - 41001303250491
vagrand
Valick
Цитата
ну для отправки вопроса и ответов клиенту он будет нужен в любом случае


Не факт что нужен будет, вполне возможно выбирать ответы отдельным запросом. Все зависит от архитектуры системы.

Цитата
и эти же данные сожно сохранить в сессии, что позволит проверять от вет без обращения к БД


У ТС-а был вопрос не про то как закешировать выборку, а про то как правильно составить запрос. В этом ключе я и отвечал.

_____________
Senior PHP developer: PHP5, MySQL, JavaScript, CakePHP, Yii/Yii2, Zend Framework, Smarty, XML/Xslt, JQuery, Jquery Mobile, Bootstrap, ExtJS, HTML, HTML5, CSS, Linux, SVN, Git, Memcached, Redis, MongoDB, Zend Guard, Ioncube, FFMpeg, PayPal, Webmoney, Qiwi, Facebook API, Vkontakte Api, Google API, Twitter Api, Steam Api.
Junior Android Developer: Android SDK, многопоточность, работа с HTTP запросами, JSON, SQLite, фрагменты.
Valick
Цитата
Не факт что нужен будет, вполне возможно выбирать ответы отдельным запросом. Все зависит от архитектуры системы.

А в случае с переносом правильного ответа во вторую таблицу вас кто Воландеморт заставляет JOIN юзать? smile.gif Те же два запроса и дело шляпа))
Хотя лично я бы юзал JOIN, без каких либо дополнительных пинков мне под зад smile.gif


_____________
Стимулятор ~yoomoney - 41001303250491
vagrand
Valick
Цитата
А в случае с переносом правильного ответа во вторую таблицу вас кто Воландеморт заставляет JOIN юзать?


ТС написал что имеет массив вопросов и ответов и нужно вывести одним запросом общее количество правильных из них. Приведите мне пример sql запроса если id правильного ответа будет во второй таблице.

_____________
Senior PHP developer: PHP5, MySQL, JavaScript, CakePHP, Yii/Yii2, Zend Framework, Smarty, XML/Xslt, JQuery, Jquery Mobile, Bootstrap, ExtJS, HTML, HTML5, CSS, Linux, SVN, Git, Memcached, Redis, MongoDB, Zend Guard, Ioncube, FFMpeg, PayPal, Webmoney, Qiwi, Facebook API, Vkontakte Api, Google API, Twitter Api, Steam Api.
Junior Android Developer: Android SDK, многопоточность, работа с HTTP запросами, JSON, SQLite, фрагменты.
Valick
vagrand, а в чем проблема то? во второй таблице просто обязан быть id вопроса, я у вас специально спросил что таое title потому как предположил, что именно по этому полю связаны таблицы.
Поэтому для выборки количества правильных ответов работаем исключительно со второй таблицей и даже никакие джоины не нужны. Этот вариант слегка денормализован, в отличии от вашего с тремя таблицами, но я же и написал "как вариант"
Если вам не нравится Воландеморт, так и скажите, но я то тут при чём? smile.gif


_____________
Стимулятор ~yoomoney - 41001303250491
vagrand
Valick
Да никаких проблем нет. Я написал структуру таблиц для своего варианта со связью многие-ко-многим и в этом варианте поле с правильным ответом должно быть именно в таблице questions. И никакого "Воландеморта" тут нет.
Ваш способ тоже правильный в случае, если связь вопросы -> ответы идет один ко многим. Вот и все.

_____________
Senior PHP developer: PHP5, MySQL, JavaScript, CakePHP, Yii/Yii2, Zend Framework, Smarty, XML/Xslt, JQuery, Jquery Mobile, Bootstrap, ExtJS, HTML, HTML5, CSS, Linux, SVN, Git, Memcached, Redis, MongoDB, Zend Guard, Ioncube, FFMpeg, PayPal, Webmoney, Qiwi, Facebook API, Vkontakte Api, Google API, Twitter Api, Steam Api.
Junior Android Developer: Android SDK, многопоточность, работа с HTTP запросами, JSON, SQLite, фрагменты.
SoMeOnE
Спасибо за ответы. Все понятно.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.