admin

动态创建内联SQL表(用于排除左联接)

sql

让我们假设以下内容:

表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清单是在我的前端生成的。

使用纯SQL,我需要从此列表(10、11、12、13、14)中选择ID,这些ID在表A中没有条目(在“
id”列中联接)。结果应该是id的13和14的结果集。

如何仅使用SQL完成此操作?(此外,如果可能,我想避免使用存储过程)

我能想到的唯一方法是,可以动态创建一个内联SQL表来临时保存我的ID列表。但是,我不知道该怎么做。这可能吗?有没有更好的办法?

谢谢!:)


阅读 153

收藏
2021-05-10

共1个答案

admin

您可以使用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
2021-05-10