我试图执行以下查询:
DROP TABLE IF EXISTS TEMP_TBL_NAME;
USE `DB_NAME`;
CREATE TEMPORARY TABLE
IF NOT EXISTS TEMP_TBL_NAME AS (
SELECT `FIELD_1`, `FIELD_2`
FROM `TBL_NAME`
WHERE `FIELD_1` = ? AND `FIELD_2` = ?);
SELECT u.`user_type`, u.`user_id_rank`
FROM TEMP_TBL_NAME st
INNER JOIN `TBL_X` u ON st.`FIELD_A` = u.`FIELD_B`
WHERE u.`FIELD_C` = ?;
(查询没问题。如果我在mysql上运行它可以工作)
运行查询我使用PreparedStatement并使用:
set = statement.executeQuery();
我知道executeUpdate()
适用于像create / drop / etc这样的操作的查询。
和executeQuery()
用于SELECT查询。 - >我需要ResultSet ..
在我的情况下 - 它的组合。
(我知道我可以使用连接并解决这个问题。但我想使用临时表来保持性能更好)
我得到的例外是: java.sql.SQLException:无法使用executeQuery()发出数据操作语句。
我知道如何使用temp(drop,create)运行查询并在一个查询中选择...