Я строю систему страхования по страхованию и задаю несколько вопросов. Мои вопросы хранятся в одной таблице (questionTable), мои ответы хранятся в таблице ответов (answerTable), а действие вопроса/ответа (то есть, ссылаться на цитату или задавать другой вопрос) сохраняется в таблице действий (actionTable) ,Можно ли использовать значение поля MySQL в предложении WHERE?
Вот некоторые выборочные данные
questionsTable
questionId | questionDescription
1 | What percentage of the roof is flat?
2 | Please provide details of the roof construction:
3 | How many rooms does the building have?
answersTable
answerId | questionId | answerValue
1 | 1 | < 50%
2 | 1 | > 50%
3 | 2 | freeForm
4 | 3 | 1
5 | 3 | 2
6 | 3 | 3
7 | 3 | 3+
actionsTable
actionId | answerId | action
1 | 2 | 2
2 | 6 | refer
3 | 7 | decline
Путь ссылку таблицы заключается в следующем: Каждый вопрос имеет ответы, выбираемые из базы данных, определенные ответы несут определенные действия - задайте другой вопрос или отклоните цитату. Если они задают другой вопрос, идентификатор вопроса сохраняется в поле действия.
Так что, если вы ответите '> 50%' на вопрос 1 'Какой процент крыши плоский?' вы получите ответ на вопрос 2.
Мой вопрос в том, как я могу выбрать все вопросы из «questionsTable». ГДЕ ИД не равен ни одному из значений «действия» из «actionTable». Таким образом, давая мне вопрос «верхнего уровня» задавать?
Я знаю, что я мог бы сделать это просто в PHP с помощью двух запросов MySQL, 1, чтобы выбрать все числовые значения из «actionsTable», то другой, чтобы выбрать вопросы
'SELECT questionDescription FROM questionsTable
WHERE questionsTable.questionId != 'this' AND questionsTable.questionId != 'this', etc
Конструкция этого база данных должна быть нормализована, но также динамическая, например команда администратора может использовать страницы администрирования для добавления/удаления вопросов, ответов и действий.
Вы абсолютная легенда. – Sjwdavies 2010-11-29 18:48:55