我正在建立一個保險報價系統,並提出了一些問題。我的問題存儲在一個表(questionsTable)中,我的答案存儲在答案表(answersTable)中,問題/答案操作(即是引用報價還是提示另一個問題)存儲在動作表(actionsTable) 。是否可以在WHERE子句中使用MySQL字段值?
下面是一些樣本數據
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
的方式表的鏈接是這樣的: 每個問題都有答案,可以從數據庫中選擇某些答案攜帶某些操作 - 提出另一個問題,或拒絕報價。如果他們要問另一個問題,問題的ID存儲在操作字段中。所以基本上,如果你回答問題1'> 50%''屋頂的百分比是平的嗎?'你會得到問題2來回答。
我的問題是,如何從'questionsTable'中選擇所有的問題,哪裏的ID不等於'actionsTable'中的任何'action'值 - 因此給了我'最高級別'的問題組?
我知道我可以用兩個MySQL查詢,1至從「actionsTable」選擇所有的數值做這個簡單的PHP,那麼另一個選擇問題
'SELECT questionDescription FROM questionsTable
WHERE questionsTable.questionId != 'this' AND questionsTable.questionId != 'this', etc
這樣做的設計數據庫將被規範化,但也是動態的,例如管理團隊可以使用管理頁面添加/刪除問題,答案和操作。
你是一個絕對的傳奇。 – Sjwdavies 2010-11-29 18:48:55