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)