如何使用Python在指定表查询特定值并从另一关联表返回匹配结果
Jarv数据库对话匹配功能实现说明
1. 数据库基础结构
现有名为Jarv的数据库,包含COM、RES两张数据表,字段信息如下:
- COM表字段:ID(整数型)、CName(字符串型)、CType(字符串型)
- RES表字段:ID(整数型)、RName(字符串型)、RType(字符串型)
2. 功能需求
接收用户输入内容后按照以下逻辑执行,任意步骤匹配失败均返回抱歉,请重新输入(原英文提示:Sorry, repeat again):
- 检查输入内容是否存在于COM表的CName列
- 匹配成功则获取该行对应的ID值
- 到RES表中查询与该ID匹配的行
- 匹配成功则返回该行对应的RName列值
3. 示例数据
COM表测试数据
ID | CName | CType 1 | Hi | Greeting 2 | whats your name | Greeting 3 | how are you | Greeting
RES表测试数据
ID | RName | RType 1 | Hello | Greeting 2 | My name is Jarv | Greeting 3 | I'm great | Greeting
4. 执行流程示例
以用户输入内容为Hi为例,执行流程如下:
- 在COM表的CName列查询到匹配值
Hi,获取对应ID为1 - 在RES表的ID列查询到匹配ID=1的行,获取对应RName为
Hello - 将结果存入变量
RESP输出,最终输出结果为Hello
5. 实现代码
SQL查询实现
可直接通过关联查询完成需求,代码如下:
-- 替换语句中的【用户输入内容】为实际接收到的用户输入 SELECT IFNULL(r.RName, '抱歉,请重新输入') AS RESP FROM COM c LEFT JOIN RES r ON c.ID = r.ID WHERE c.CName = '用户输入内容' LIMIT 1;
如果语句返回空结果,直接返回抱歉,请重新输入即可。
内容的提问来源于stack exchange,提问作者user15347100
相关产品推荐
相关产品推荐

