让我们假设如下:

表A

id | value
----------
1   | red
2   | orange
5   | yellow
10  | green
11  | blue
12  | indigo
20  | violet

我有一个id列表(10, 11, 12, 13, 14),可以用来在这个表中查找id.这个id列表是在我的前端生成的.

Using purely SQL, I need to select the id's from this list (10, 11, 12, 13, 14) that do not have entries in 表A (joining on the 'id' column). The result should be the resultset of id's 13 and 14.

仅使用SQL如何实现这一点?(另外,如果可能的话,我希望避免使用存储过程)

我能想到的唯一方法是动态创建一个内联SQL表来临时保存我的id列表.然而,我不知道如何做到这一点.这可能吗?有更好的办法吗?

谢谢!:)

推荐答案

您可以创建一个包含UNION个子查询的"内联表":

(
            SELECT 10 AS id
  UNION ALL SELECT 11 UNION ALL SELECT 12 UNION ALL SELECT 13 UNION ALL SELECT 14
  -- etc.
) AS inline_table

Mysql相关问答推荐

如何在任何连续范围内获得最大值

MySQL UPDATE 锁会因为连续的 SHARE 锁而饿死吗?

具有别名主机的 ssh 反向 mysql tunel

在 MySQL 中为多列创建索引以进行查询优化

无法在两个 mysql 表上执行内部联接

sql sum - 处理连接表中的脏重复项

MariaDB 下的慢速更新、删除和插入查询

使用case查询并更新最后一条记录

Spring Boot:Jdbc javax.net.ssl.SSLException:在接收对等方的 close_notify 之前关闭入站

MYSQL OR 与 IN 性能

MySQL:SyntaxError:意外的标识符

不支持身份验证插件“caching_sha2_password”

Laravel mysql迁移错误

无法加载身份验证插件“caching_sha2_password”

不支持扫描,将 driver.Value 类型 []uint8 存储到 *time.Time 类型中

MySQL 错误: '访问被拒绝用户'root'@'localhost'

如何在 localhost (xampp) 中打开/关闭 MySQL 严格模式?

加入与子查询

Spring Boot JPA 使用 Hibernate 在 TABLE 中插入大写名称

utf8mb4_unicode_ci 与 utf8mb4_bin