让我们假设如下:

表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相关问答推荐

SQL条件 Select 和条件WHERE

左联接重复问题

计算男生的人数和女生的人数.学生是有入学记录的人

为什么 MAX 函数通过调用在 group 中生成正确的结果

Mysql:使用like Select 查询

MySQL:获取连续记录的数量(日期)?

MySQL 运行自动脚本

看不懂mysql自左连接查询

按优先级 for each 具有 status_id 的员工 Select 单行

如何根据购买的商品数量查找 unique_ids 的数量

使用索引进行查询优化

如何创建将行转换为列的 MySQL 查询?

MYSQL:如何根据之前的相关记录获取记录

什么是 PyMySQL,它与 MySQLdb 有何不同?它会影响 Django 部署吗?

我如何决定何时使用右连接/左连接或内连接或者如何确定哪个表在哪一侧?

基于字符串动态创建 PHP 对象

MySQL 实用程序 - ~/.my.cnf 选项文件

MySQL where NOT IN 名称数组?

MySQL 错误 2014 的原因在其他无缓冲查询处于活动状态时无法执行查询

MySQL合并两列并添加到一个新列中