我有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命令出了什么问题?
答案 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;
如果在运行时遇到错误或不同的结果,请对此查询进行适当的更改。