gpt4 book ai didi

php - 是否可以在 WHERE 子句中使用 MySQL 字段值?

转载 作者:行者123 更新时间:2023-11-29 07:11:19 25 4
gpt4 key购买 nike

我正在构建一个保险报价系统,有很多问题要问。我的问题存储在一个表 (questionsTable) 中,我的答案存储在答案表 (answersTable) 中,问题/答案操作(即是否引用引文或提示另一个问题)存储在操作表 (actionsTable) 中.

这是一些示例数据

问题表

    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?

答案表

    answerId | questionId | answerValue
1 | 1 | < 50%
2 | 1 | > 50%
3 | 2 | freeForm
4 | 3 | 1
5 | 3 | 2
6 | 3 | 3
7 | 3 | 3+

Action 表

    actionId | answerId | action
1 | 2 | 2
2 | 6 | refer
3 | 7 | decline

表格链接的方式是这样的:每个问题都有答案,可以从数据库中选择某些答案进行某些操作 - 提出另一个问题,或拒绝报价。如果他们要问另一个问题,问题的 ID 将存储在操作字段中。

基本上,如果您对问题 1“屋顶平坦的百分比是多少?”回答“>50%”您需要回答问题 2。

我的问题是,如果 ID 不等于“actionsTable”中的任何“action”值,我如何从“questionsTable”中选择所有问题 - 从而为我提供“顶级”问题集?

我知道我可以在 PHP 中使用两个 MySQL 查询来简单地做到这一点,一个是从“actionsTable”中选择所有数值,另一个是选择问题

'SELECT questionDescription
FROM questionsTable<br/>
WHERE questionsTable.questionId != 'this' AND questionsTable.questionId != 'this', etc

这个数据库的设计是规范化的,也是动态的,例如管理团队可以使用管理页面添加/删除问题、答案和操作。

最佳答案

SELECT questionDescription FROM questionsTable
LEFT JOIN actionsTable ON questionsTable.questionId=actionsTable.action
WHERE actionsTable.action IS NULL

这连接了两者,保留了 questionsTable 中的所有值,并且仅显示在 action 字段上的 actionsTable 中没有匹配的值。

关于php - 是否可以在 WHERE 子句中使用 MySQL 字段值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4306847/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com