如何筛选满足同ID关联词匹配条件的Table 2数据行?
数据表筛选实现方案
现有数据表
Table 1(复合主键:Number PK、Word PK)
| Number PK | Word PK |
|---|---|
| 1 | A |
| 1 | B |
| 1 | C |
| 2 | B |
| 2 | A |
| 2 | C |
| 3 | J |
| 3 | K |
| 3 | B |
Table 2
| Number2 | Word2 |
|---|---|
| 1 | A |
| 2 | X |
| 3 | B |
需求说明
筛选Table 2中的数据行,要求该行的Word2存在于Table1中Number PK等于Table2的Number2的记录集合内。
实现SQL语句
提供两种常用实现方式:
方法1:内关联查询
SELECT t2.Number2 AS Number, t2.Word2 AS Word FROM Table2 t2 JOIN Table1 t1 ON t2.Number2 = t1.`Number PK` AND t2.Word2 = t1.`Word PK`;
方法2:子查询
SELECT t2.Number2 AS Number, t2.Word2 AS Word FROM Table2 t2 WHERE EXISTS ( SELECT 1 FROM Table1 t1 WHERE t1.`Number PK` = t2.Number2 AND t1.`Word PK` = t2.Word2 );
执行结果
| Number | Word |
|---|---|
| 1 | A |
| 3 | B |
内容的提问来源于stack exchange,提问作者Lechius
相关产品推荐
相关产品推荐

