mysql - PHP Select Query 用于比较来自不同 mysql 表的 2 个值(如果它们匹配)
问题描述
PHP新手得到了一个测验。在 db 15 Questions/15Answers 中有一个答案的输入表单,该表单将发送到 mysql 表中。并且在数据库中还有一个问题表,一个 ID 字段到 15 和一个正确的答案字段。
问题表:
- Questions_ID - int 11 /PK / 不为空
- 问题 - 文本/不为空
- 正确答案 - 文本/不为空
答案表:
- Answers_ID - 整数 11 / PK / 不为空
- inputanswer1 - varchar 255 / 非空
- inputanswer2 - varchar 255 / 非空
- inputanswer3 - varchar 255 / 非空
我想知道使用这种方法从问题表中检查我在下面完成的正确答案,但我遇到的问题是将其与存储输入答案的另一个表匹配。
问题是操作员习惯于说“等于”其他东西并查看它们是否匹配。这就是 1 个选择查询中的全部内容。
问题表
SELECT fieldname (rightanswer) FROM tablename (Questions) WHERE ID = 1;
SELECT fieldname FROM tablename WHERE Id = 2;
上面的代码正在工作并且正在执行我希望它执行的第一部分,即从“问题”表中选择“正确答案”,第一个问题 ID 为“1”现在需要帮助匹配/比较的第二部分到哪里输入的答案在“答案”表中,以“inputanswer1”开头
查找“问题”表中的“正确答案”是否与“答案”表中的“输入答案 1”匹配。
???答案表
SELECT fieldname FROM tablename;
解决方案
下面的查询假定您使用每个问题中的 ID 列将问题表行与答案表行相关联。但是您将答案中的 ID 列显示为主键。
只需将 ON 子句编辑为正确的关系。
正如我在上面的评论中提到的,rightanswer
问题表中的列应该与您比较的列具有相同的类型(IOW,varchar(255))
SELECT
a.`ID`,
a.`question`,
a.`rightanswer`,
b.`ID` as `aID`,
b.`inputanswer1`,
b.`inputanswer2`,
b.`inputanswer3`,
FROM `questions` a
JOIN `answers` b
ON a.`ID` = b.`ID`
WHERE a.`rightanswer` = b.`inputanswer1`
更新: OP 提供的表模式
CREATE TABLE `quiz`.`Questions` (
`Questions_ID` INT NOT NULL AUTO_INCREMENT,
`question` VARCHAR(255) NOT NULL,
`rightanswer` VARCHAR(255) NOT NULL,
PRIMARY KEY (`Questions_ID`)
)
ENGINE = MyISAM;
CREATE TABLE `quiz`.`Answers` (
`Questions_ID` INT NOT NULL AUTO_INCREMENT,
`inputanswer1` VARCHAR(255) NOT NULL,
`inputanswer2` VARCHAR(255) NOT NULL,
`inputanswer3` VARCHAR(255) NOT NULL,
`inputanswer4` VARCHAR(255) NOT NULL,
`inputanswer5` VARCHAR(255) NOT NULL,
PRIMARY KEY (`Questions_ID`)
)
ENGINE = MyISAM;
推荐阅读
- html - 检查 html 语法
- selenium - 具有 PageFactory 阻抗的页面对象模型
- php - Codeigniter 路由基础故障排除
- php - Parse input value to php variable on submit (clashing with other scripts running)
- kubernetes - Kibana kubernetes 服务上的连接被拒绝
- c++ - 以星号上下移动打印字母
- sql - CREATE TABLE..INSERT ALL INTO 字符错误 - Oracle SQL
- sql - 删除sql表中的重复记录
- unity3d - Unity:是否可以从异步加载的场景中获取数据?
- google-cloud-platform - Google Analytics -> Bigquery -> 每日导出到 IBM 云存储