java - 无法重新打开表。 select查询中使用了两次临时表

标签 java mysql sql

创建了一个临时表来存储我计划多次检索的子集。

如果原始表中存在具有不同 id 的键,这是我的选择查询,用于从临时表中选择记录。

SELECT document 
FROM originalTable  
WHERE id NOT IN ( SELECT id FROM temporaryTable) AND key IN ( SELECT key FROM temporaryTable)

有什么帮助吗?

我正在用 Java 编码。尽量避免创建永久表。

最佳答案

我认为你可以使用exists来满足你的期望。

SELECT document 
FROM originalTable o
WHERE exists 
(
   SELECT 1 
   FROM temporaryTable t
   WHERE t.id <> o.id AND t.key = o.key
)

关于java - 无法重新打开表。 select查询中使用了两次临时表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49702473/

相关文章:

java - 将 HashMap 的键限制为指定字符长度

mysql - instr() SQL 结果排序不符合预期

php - 更新数字的 MySQL 问题

python - 为什么 MYSQL DB 在对 Django models.DateTimeField 进行平均时返回损坏的值?

java - 如何在 Java 中使用 TensorFlow LinearClassifier

java - 令人困惑的二维数组

Java - 绘图库

mysql - 确定给定表中的 PK

mysql - 带有 INNER JOIN 和子查询的 WHERE 子句

sql - 从 Postgres jsonb 数组中提取最早的日期