How do I use WHERE EXISTS function in JDBC

Mat*_*uld 3 java mysql sql jdbc phpmyadmin

For the last 6-7 hours I've been searching/googling/experimenting for a solution to this but no results so far.

我有一个SQL字符串(下面),它在PHPMYADMIN中完美地工作,但在我的java执行中不起作用.当试图执行查询,我得到" RID没有找到. "

的SQLException:

java.sql.SQLException: Column 'rid' not found.
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1078)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:989)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:975)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:920)
at com.mysql.jdbc.ResultSetImpl.findColumn(ResultSetImpl.java:1167)
at com.mysql.jdbc.ResultSetImpl.getInt(ResultSetImpl.java:2851)
at net.matthewauld.racetrack.server.WrSQL.getJSONClassSpecificRiders(WrSQL.java:41)
at net.matthewauld.racetrack.server.ClientListener.parseCommand(ClientListener.java:110)
at net.matthewauld.racetrack.server.ClientListener.run(ClientListener.java:42)
Run Code Online (Sandbox Code Playgroud)

-

SELECT * FROM `riders` WHERE EXISTS(SELECT * FROM `ridersclasses` WHERE ridersclasses.rid = riders.id AND `cid` = '6') ORDER BY `first_name` ASC
Run Code Online (Sandbox Code Playgroud)

这是我执行SQL查询的java代码.

url = "jdbc:mysql://127.0.0.1:3306/racetrack2013?allowMultiQueries=true";
con = DriverManager.getConnection(url, user, password);
st = con.createStatement();
rs = st.executeQuery(query);
Run Code Online (Sandbox Code Playgroud)

下面我将发布两个表的结构和一些数据示例:

RidersClasses

+---------------------------------------------------+
|                   ridersclasses                   |
+---------------------------------------------------+
|  ID  |  RID  |  CID  |  BIKENUMBER  |  BIKEMODEL  |
+---------------------------------------------------+
Run Code Online (Sandbox Code Playgroud)

车手

+----------------------------------------------------------------------------------+
|                                         Riders                                   |
+----------------------------------------------------------------------------------+
|  ID  |  first_name  | last_name  |  address  |  city_id  |  h_phone  |  c_phone  |
+----------------------------------------------------------------------------------+
Run Code Online (Sandbox Code Playgroud)

Ste*_*han 6

问题很简单:表中没有ridriders.

正如它在strack trace中所示,问题始于 getInt

所以不要rs.getInt("rid")使用rs.getInt("id")