저는 Insurance Quoting 시스템을 구축하고 있으며 여러 가지 질문을하고 있습니다. 내 질문은 하나의 테이블 (questionsTable)에 저장되고, 내 답변은 답변 테이블 (answersTable)에 저장되며 질문/답변 작업 (즉, 견적을 참조할지 또는 다른 질문을 묻는 지)은 actions 테이블 (actionsTable) . 여기 WHERE 절에서 MySQL 필드 값을 사용할 수 있습니까?
는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
방법은 테이블 링크이 일부 샘플 데이터
에게
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 questionsTable있어 : 각 질문에는 데이터베이스에서 선택할 수있는 답변이 있습니다. 특정 답변은 특정 행동을 수행합니다 - 다른 질문을하거나 견적을 거절하십시오. 그들이 다른 질문을 할 경우, 질문의 id는 action 필드에 저장됩니다.
기본적으로 '> 50 %'라고 대답하면 질문 1 '지붕의 몇 퍼센트가 납작합니까?' 당신은 대답 2를 받게됩니다.
내 질문에 'ID'가 'actionsTable'의 'action'값과 같지 않은 'questionsTable'에서 모든 질문을 선택하려면 어떻게해야합니까? 따라서 '최상위'질문을 제공합니다. 세트?
나는 내가 'actionsTable'에서 모든 숫자 값을 선택하는 두 MySQL은 쿼리, 하나를 사용하여 간단하게 PHP에서이 작업을 수행 할 수 알고, 그 다음 또 다른 질문
'SELECT questionDescription FROM questionsTable
WHERE questionsTable.questionId != 'this' AND questionsTable.questionId != 'this', etc
을이의 디자인을 선택합니다 데이터베이스는 표준화 될뿐만 아니라 동적입니다. 관리 팀은 관리자 페이지를 사용하여 질문, 답변 및 작업을 추가/제거 할 수 있습니다.
당신은 절대 전설입니다. – Sjwdavies
불편을 끼쳐 드려 죄송합니다. 더 자세히 설명해 주시겠습니까? – Sjwdavies
LEFT JOIN에는 상관없이 "왼쪽"(첫 번째) 테이블의 모든 행이 있습니다. 해당 행이 존재하면 다른 테이블의 일치하는 행과 조인됩니다. 그렇지 않으면 해당 필드가 NULL입니다 (정확하게 찾고있는 것) –