| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Составление SQL-запросов > ВЫбрать не повторяющийся вопрос |
| Автор: MrDmitry 6.3.2012, 23:46 | ||
| Здравствуйте, помогите пожалуйста составить sql запрос на выборку из базы данных не повторяющийся вопроса. Есть таблицы со следующими структурами таблица quest(таблица с вопросами) id - номер вопроса quest - сам вопрос answer - правильный ответ на вопрос таблица log(таблица в которой хранятся все вопросы уже использованные) id - номер лога user_id - номер пользователя date - дата ответа quest_id - номер использованого вопроса Нужно получить из таблицы quest вопрос который не использовался в таблице log у пользователя Пробовал сделать так:
Я знаю что таким образом я бы не получил то что мне нужно, я надеялся получить список всех вопросов которые небыли задействованы в log и из них уже на php рандомно выберать любой вопрос. Но все мои затеи потерпели фиаско |
| Автор: Gluttton 7.3.2012, 00:14 |
| Если я ничего не напутал, то: 1. Из таблицы log выбираем (можно с distinct) те quest_id, которые соответсвуют user_id - это те вопросы, на которые когда-либо пользователь отвечал. 2. Делаем внешнее соединение полученного результата с таблицей quest, и из полученного множества выбираем записи со значением NULL в поле quest_id - это те вопросы, которые никогда не попадали в таблицу логов для данного пользователя. |
| Автор: AndreyIQ 7.3.2012, 07:05 | ||
|
| Автор: MrDmitry 7.3.2012, 15:33 |
| Спасибо. А можно как то сделать чтоб на sql вопрос из не повторяющихся выбирался рандомно? |
| Автор: Zloxa 7.3.2012, 16:18 |
| отсортировать по случайному значению. Функции генераторов случайных чисел не стандартизированы и сугубо платформоспецифичны. |
| Автор: MrDmitry 8.3.2012, 01:26 |
| отсортировать по случайному значению - это как? если как я понимаю на sql нет генератор случайных чисел |
| Автор: Zloxa 8.3.2012, 23:12 | ||
| Еще раз повторяю, это специфично для платформы. Например для оралкла это было бы как-то так:
Поищите функцию герератора случайных чисел в документациии для своей платформы. Уверен, вы что-то найдете. |