登录
首页 >  数据库 >  MySQL

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

时间:2024-11-24 18:36:52 140浏览 收藏

本篇文章向大家介绍《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 表中获取特定条件的记录?》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>