【发布时间】:2021-08-05 15:51:04
【问题描述】:
这是场景,
表 1:
| Phone Number id | Person_id |
|---|---|
| 12345 | 001 |
| 12346 | 001 |
| 12347 | 001 |
| 12348 | 002 |
| 12349 | 002 |
| 12350 | 003 |
表 2:
| Person_id | primary phone id |
|---|---|
| 001 | 12346 |
| 002 | |
| 003 | 12350 |
有两个表,table1 和 table2 我想根据 person_id 获取电话号码,条件是,
如果电话号码 id 是主要的(存在于 table2 中是主要的),请选择主要号码,否则选择较少的电话号码
例如 这就是我想要的,我使用了子查询,但它使 200 000 个人 id 的查询速度变慢
输出:
| Person_id | Phone Number id |
|---|---|
| 001 | 12346 |
| 002 | 12348 |
| 003 | 12350 |
【问题讨论】:
-
这是什么意思? “选择较少的电话号码”。小于什么?
-
我的意思是更小。例如对于 id 002,电话号码 id 应该是 12348 而不是 12349
-
嗨@VishalYadav你使用哪个mysql版本?所有列数据类型都是字符串还是整数?
-
Oracle 数据库。无需担心数据类型。
-
MySQL 和 Oracle 是完全不同的产品。既然你说是Oracle,那我就换了你的tag。