我正在使用JSP和Servlet开发Web应用程序(IDE:Eclipse,Container:Tomcat7.0,DB:Oracle 10)
我想在单个查询中从两个表中获取数据
查询:
query = "select * from PROTOCOL as a, ACTIONS as b where a.PROTOCOL_ID = b.PROTOCOL_ID";
但是在运行应用程序后,我遇到以下异常:
java.sql.SQLException: ORA-00933: SQL command not properly ended
查询有什么问题吗?
答案 0 :(得分:12)
您遇到的问题是关键字AS
。这用于SELECT
部分中的列。它对于您指定表的FROM
无效。
你有
select * from PROTOCOL as a, ACTIONS as b
应该是
select * from PROTOCOL a, ACTIONS b...
<强> t_alias 强>
指定相关名称,该名称是表,视图的别名, 用于评估查询的物化视图或子查询。这个别名是 如果选择列表引用任何对象类型属性或,则必需 对象类型方法。相关名称最常用于a 相关查询。对表,视图或具体化的其他引用 整个查询中的视图必须引用此别名。
示例:强>
SELECT select_list
FROM table1 t_alias1
WHERE expr operator
(SELECT column_list
FROM table2 t_alias2
WHERE t_alias1.column
operator t_alias2.column);
答案 1 :(得分:2)
错误的别名语法。尝试以下方法:
query = "select * from PROTOCOL a,ACTIONS b where a.PROTOCOL_ID = b.PROTOCOL_ID";
答案 2 :(得分:0)
这里的评论可能需要它.PostgreSQL似乎接受FROM / JOIN旁边的AS