我正在开发一个应用程序,帮助用户输入与数据库中存在的症状相匹配的症状,并获得疾病(诊断)。
我有以下数据库表,其中包含有关症状、疾病和疾病的信息,这些信息与这两个表相关联,如下所示:
DISEASE_T SYMPTOMS disease-symptoms
========== ========== ========
DISEASE_ID SYMPTOM_ID DISEASE_ID
VALUE VALUE SYMPTOM_ID
我想搜索用户选择的症状,这是一系列的症状id在疾病-症状表和返回前5匹配的疾病id,根据,其中大多数症状是匹配的每种疾病。
例如,使用者选择的症状是1,2,3 (咳嗽,感冒,头痛)。
DISEASE_T SYMPTOMS_T disease-symptoms
========= ========== ===============
1,malaria 1,cough 1,1
2,tuberculosis 2,cold 1,2
3,typhoid 3,headache 2,2
2,3
3,1
3,2
3,3
我们会感谢你的帮助。
发布于 2016-08-26 03:29:00
选择有以下三种症状的疾病:
(1,2,3)组(1,2,3)中从DiseaseSymptoms_T SYMPTOM_ID中选择DISEASE_ID,count() =3 --
那只会列出伤寒,因为伤寒有三个症状
如果你想要所有症状为1和2的疾病
选择DISEASE_ID,从DiseaseSymptoms_T where SYMPTOM_ID中选择count(),在(1,2)组中,按有count() =2的DISEASE_ID --
最后一个查询还将显示伤寒病,因为它有以下两个症状
如果只需要前5行,则语法取决于引擎。对于Server使用选择前5 DISEASE_ID.对于MySQL,在查询结束时添加限制1.对于Informix,使用SELECT FIRST 5..。
https://dba.stackexchange.com/questions/147942
复制相似问题