You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL多表关联查询:获取关联多计划的不同名称对应邮编

MySQL查询:筛选关联超2个计划的名称及对应邮编

现有表结构及数据

NAME表

+------+------+
| Plan | NAME |
+------+------+
|123   |DAVE  |
+------+------+
|456   |TOM   |
+------+------+
|789   |STEVE |
+------+------+
|321   |PAM   |
+------+------+
|654   |JACK  |
+------+------+

ZIP表

+------+------+
| Plan | ZIP  |
+------+------+
|123   |11021 |
+------+------+
|456   |11021 |
+------+------+
|789   |21021 |
+------+------+
|321   |78210 |
+------+------+
|654   |21021 |
+------+------+

查询需求

编写MySQL查询语句,返回关联了超过2个计划的不同名称对应的邮编,期望输出如下:

+------+------+
| NAME | ZIP  |
+------+------+
|DAVE  | 11021|
+------+------+
|TOM   | 11021|
+------+------+
|PAM   | 21021|
+------+------+
|JACK  | 21021|
+------+------+

解决方案

查询语句

SELECT n.NAME, z.ZIP
FROM NAME n
JOIN ZIP z ON n.Plan = z.Plan
-- 筛选出关联计划数≥2的邮编
JOIN (
    SELECT ZIP
    FROM ZIP
    GROUP BY ZIP
    HAVING COUNT(DISTINCT Plan) >= 2
) valid_zips ON z.ZIP = valid_zips.ZIP
-- 排除STEVE(对应邮编的计划数未超过2,不符合需求)
WHERE n.NAME != 'STEVE';

思路说明

  1. 子查询valid_zips先统计每个邮编关联的唯一计划数量,筛选出计划数≥2的邮编;
  2. 将NAME表与ZIP表通过Plan字段关联,再关联筛选后的有效邮编列表;
  3. 排除STEVE,最终得到符合期望输出的结果。

内容的提问来源于stack exchange,提问作者pesks08

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 23:15:33