根据使用两个不同表中的ID的映射表获取值

时间:2018-06-29 18:12:14

标签: android mysql sqlite android-sqlite

我正在制作一个用于疾病检测的应用程序。这是一个具有基本UI的基本应用程序,用于学习目的,我正在使用SQLite数据库从中获取症状和疾病。我的数据库中有三个表,一个是Symptoms_table,它具有以下属性:

Symp_id  symptoms
"1"      "cold"
"2"      "fever"
"3"      "headache"
"4"      "vomit"
"5"      "weakness"
"6"      "bodypain"
"7"      "stomachache"
"8"      "loosemotion"

我还有一个称为疾病表的表,它具有以下属性:

 Dis_id   Disease
  "1"     "Jaundice"
  "2"     "Malaria"
  "3"     "Typhoid"
  "4"     "ChickenPox"

还有第三张表,用于映射这两个表中的ID。表名称是“地图”,它具有以下属性:

sym_id  dis_id
 "1"    "2"
 "1"    "4"
 "2"    "1"
 "2"    "2"
 "2"    "3"
 "2"    "4"
 "3"    "1"
 "3"    "2"
 "3"    "4"
 "4"    "1"
 "4"    "3"
 "5"    "1"
 "5"    "2"
 "5"    "3"
 "5"    "4"
 "6"    "2"
 "6"    "4"
 "7"    "1"
 "7"    "3"
 "8"    "1"
 "8"    "3"
 "8"    "4"

我已经尝试使用LEFT JOIN,RIGHT JOIN和INNER JOIN之类的联接,但是我没有得到想要的结果。实际上,我需要基于Map表中映射的ID的Symptoms_table的“症状”列和Disease_table的“疾病”列。这样我就可以根据在我的应用程序中选择的症状显示疾病,并在expandablelistview中基于疾病映射症状。我的意思是双向工作。我仍在学习使用这些复杂的SQL查询。

1 个答案:

答案 0 :(得分:0)

您将不得不从两个表中进行选择,在此解决方案中,我将使用alias,其中之一可以工作或进行交叉连接,但尝试尝试不会受到任何伤害:

 <form id="generateForm" method="post" action="/app" onsubmit="return writeForm(event);">

OR

SELECT S.symptoms, D.disease
FROM Symptoms_table S, Map M
FULL OUTER JOIN Disease_table ON S.symp_id = M.sym_id

这至少应该使您走上正确的轨道。