我正在创建一个查询数据库,这样我将把查询作为输入,输出将是一个适当的回复。您可以将其视为一个问题&答案数据库。
以下是与我的三张桌子相似的样本:
词组表
Phrase
id phrase
-------------------
1 what
2 what is
3 what is the
查询表
Inquiry
id inquiry
------------------------
1 highest mountain
回复表格
Reply
phrase_id inquiry_id reply
-----------------------------------------
3 1 mount everest
让输入为:“什么是最高的山?”
我可以进行查询,以便知道“这是什么”是短语和“最高峰”是查询,并将回复显示为输出?
答案 0 :(得分:2)
是的,你可以通过加入你的3个表来创建这样的查询,并在连接的短语+查询中搜索问题(虽然我怀疑这将是创建这样一个数据库的最有效方式,但这远远超出SO的范围和这个主题)。
select reply
from replies r
inner join phrases p on r.phrase_id=p.id
inner join inquiries i on r.inquiry_id=i.id
where concat(p.phrase, ' ', i.inquiry)=lower('searched expression')
'搜索表达式'是输入参数。
答案 1 :(得分:1)
这是我提出的工作版本:
SELECT r.reply FROM Reply r LEFT JOIN Phrase p ON r.phrase_id=p.id LEFT JOIN Inquiry i ON r.inquiry_id=i.id WHERE LOWER('What is the highest mountain ?') LIKE LOWER(CONCAT(p.phrase, ' ', i.inquiry, '%'))