【发布时间】:2021-12-26 13:20:00
【问题描述】:
我有三个表并想加入它们,但是当使用联系人表中的父 ID 分组时,加入会多次返回单行。
contact表-
| id | Name |
|---|---|
| 1 | Murad |
| 2 | Tajharul |
phone表-
| id | contact_id | phone |
|---|---|---|
| 1 | 1 | 017 |
| 2 | 2 | 014 |
| 3 | 2 | 015 |
email表-
| id | contact_id | |
|---|---|---|
| 1 | 1 | mur@test.com |
| 2 | 1 | has@test.com |
| 3 | 1 | tan@test.com |
| 4 | 2 | taj@test.com |
| 5 | 2 | har@test.com |
期望的输出-
| id | Name | Phone | |
|---|---|---|---|
| 1 | Murad | 017 | mur@test.com,has@test.com,tan@test.com |
| 2 | Tajharul | 014,015 | taj@test.com,har@test.com |
这是我迄今为止尝试过的-
SELECT contact.name , GROUP_CONCAT(phone.phone) phone, GROUP_CONCAT(email.email) email
FROM
contact
JOIN phone ON contact.id = phone.contact_id
JOIN email ON contact.id = email.contact_id
GROUP BY contact.id
MySQL Fiddle 链接:http://sqlfiddle.com/#!9/ded29f/1
【问题讨论】:
-
使用
distinct:sqlfiddle.com/#!9/ded29f/2
标签: mysql join group-concat