MySQL 关联表查询疑难解析:如何从 A 表和 B 表中获取特定条件的记录?

mysql 关联表查询疑难解析:如何从 a 表和 b 表中获取特定条件的记录?

mysql 关联表查询疑难解析

问题:

如何使用 mysql 查询两个表 a 和 b,以提取符合特定条件的记录?

详细说明:

表 a 的结构如下:

a
---------------------
| id | outer_id | ... |
---------------------
| 1  | 1        | ... |
| 2  | 1        | ... |
| 3  | 2        | ... |
| 4  | 4        | ... |
| 5  | 6        | ... |
| 6  | 10       | ... |

表 b 的结构如下:

b
---------------------
| id | type | ... |
---------------------
| 1  | 99   | ... |
| 2  | 0    | ... |
| 3  | 99   | ... |
| 4  | 1    | ... |
| 5  | 3    | ... |
| 6  | 99   | ... |

需要查询出表 a 的两种数据:

  1. 使用 a 表的 outer_id 关联 b 表的 id,如果存在则 type 不能为 99,如果不存在则保留该数据。
  2. b 表存在且 type 等于 99。

解答:

查询 1:

select a.*
from a a
left join b b on b.id = a.outer_id
where b.id is null
   or (b.id is not null and b.type != 99)

查询 2:

SELECT a.*
FROM A a
INNER JOIN B b ON b.id = a.outer_id AND b.type = 99

以上就是MySQL 关联表查询疑难解析:如何从 A 表和 B 表中获取特定条件的记录?的详细内容,更多请关注其它相关文章!