SQL:如何从表A中一一检查是不是存在于表B上?

Posted

技术标签:

【中文标题】SQL:如何从表A中一一检查是不是存在于表B上?【英文标题】:SQL: How to check one by one from table A if it exist on table B?SQL:如何从表A中一一检查是否存在于表B上? 【发布时间】:2021-05-19 10:26:22 【问题描述】:

我想一一检查表A上的结果是否存在于表B上。

例子:

表 A

Name ID
A 100
A 101
A 102
B 101
B 100
B 103
B 104

表 B

从不兼容表中选择 * 其中 ID = '100';

ID Incompatible_ID
100 105
100 101
100 106

我的问题是,如果 100 的 incompatible_table 上不存在 101 和 102,我必须先逐个检查名称 A。然后检查 101 上是否存在 100 和 102,最后检查 102 的 100 和 101。

然后对 B 进行同样的操作,首先将其分组以检查 ID 是否彼此存在。

【问题讨论】:

(1) 您使用的是什么数据库? (2) 你想要什么结果? (3) 你的解释不是很清楚。 【参考方案1】:

    我正在使用 mysql

    我想知道是否存在 ID 彼此不兼容的名称。

    在表 A 中,我想首先过滤掉所有属于 A 的名称及其 ID,并将其进行比较以将每个 ID 搜索到表 B。这样我就剩下

Name ID
A 100
A 101
A 102

如果此查询中没有 101 和 102,我必须检查表 B: select * from incompatible_table where ID = '100';

此查询中没有 100 和 102: select * from incompatible_table where ID = '101;

【讨论】:

以上是关于SQL:如何从表A中一一检查是不是存在于表B上?的主要内容,如果未能解决你的问题,请参考以下文章

计算表A中存在于表B正方形区域中的点数 - SQL + QGIS

从表 2 中选择一个值,该值依赖于表 1 中的另一个值 (Oracle SQL)

Hive:如何检查一个数组的值是不是存在于另一个数组中?

MySQL 从表中获取数据并检查表行中是不是存在用户 ID

如何根据 PL/SQL 变量值检查输入参数值是不是存在作为列表?

如何从表 A 中选择表 B 中不存在的记录 [重复]