我在使用 UNION 问题时遇到问题:我有 2 个表 TOPIK
和 SUBTOPIK
,我执行左连接和右连接,然后使用以下语句将它们合并:
mySqlStmt = "SELECT * FROM TOPIK LEFT OUTER JOIN SUBTOPIK ON TOPIK.IDTOPIK=SUBTOPIK.IDTOPIK WHERE (TOPIK.TARGETNPMHS LIKE '%0000312100006%' OR ((TOPIK.TARGETOBJECTNICKNAME LIKE '%OPERATOR KEPALA BAA%' OR TOPIK.TARGETOBJECTNICKNAME LIKE '%OPERATOR BAA%' ) AND TOPIK.TARGETNPMHS IS NULL)) UNION SELECT * FROM TOPIK RIGHT OUTER JOIN SUBTOPIK ON TOPIK.IDTOPIK=SUBTOPIK.IDTOPIK WHERE (SUBTOPIK.NPMHSRECEIVER LIKE '%0000312100006%' OR ((SUBTOPIK.OBJNICKNAMERECEIVER LIKE '%OPERATOR KEPALA BAA%' OR SUBTOPIK.OBJNICKNAMERECEIVER LIKE '%OPERATOR BAA%' ) AND SUBTOPIK.NPMHSRECEIVER IS NULL))"
The code above works on mysql workbench, but when i use it in java,
get connection...bla..bla;
stmt = con.prepareStatement("mySqlStmt");
rs = stmt.executeQuery();
while(rs.next()) {
String topik_idTopik = ""+rs.getLong("TOPIK.IDTOPIK");
}
我得到了
java.sql.SQLException: Column 'TOPIK.IDTOPIK' not found.
但是TOPIK
和SUBTOPIK
都有这个专栏。
最佳答案
该列的别名是IDTOPIK
,您不应该使用完全限定的名称:
stmt = con.prepareStatement(mySqlStmt);
rs = stmt.executeQuery();
while(rs.next()) {
String topik_idTopik = ""+rs.getLong("IDTOPIK");
}
关于java - 使用 JDBC 在 MySQL 中使用 UNION,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24135363/