mysql使用用户输入从3个表中选择数据

时间:2014-12-12 01:41:13

标签: mysql input

我有3个表格,其中包含以下列和值(它们有多个条目,但我向您展示了一个):

protein

 +--------+------+-------------+
 | pdb_id | name | description |
 +--------+------+-------------+
 | 1AF6   | porin| maltoporin  |
 +--------+------+-------------+

organism

 +--------+-----------------------+
 | org_id | organismName          |
 +--------+-----------------------+
 | 4      | Comamonas acidovorans |
 +--------+-----------------------+

protein_organism

 +--------+--------+
 | pdb_id | org_id | 
 +--------+--------+
 | 1AF6   | 4      |
 +--------+--------+

我正在建立一个网站,有人可以从下拉菜单中查看特定生物体中的所有蛋白质。 但是,当我尝试获取数据时,浏览器会转到正确的网址:http://localhost:8084/response_organism?organismName=Comamonas+acidovorans 但没有显示。 这是我的sql命令:

query = "SELECT * FROM protein JOIN protein_organism ON protein_organism.pdb_id = protein.pdb_id JOIN organism ON organism.org_id = protein_organism.org_id WHERE organism.organismName="+po;    

po(string)是从我的index.jsp表单

获取的用户输入

我的sql命令出了什么问题?

1 个答案:

答案 0 :(得分:0)

你正在查询错误的方式。这是使用JOIN进行查询的正确方法。

"SELECT *
  FROM protein P
INNER JOIN protein_organism PO
  ON PO.pdb_id = P.pdb_id
LEFT JOIN organism O
  ON O.org_id = PO.org_id
WHERE O.organismName="+po;

如果在运行时遇到错误或不同的结果,请对此查询进行适当的更改。