由于缺乏经验,我有一项自己无法解决的任务,我真的需要帮助。
假设我们有一个包含以下字段的表:“phone_number”和“user_id”。目标是找到属于多个用户的数字。
结果应该是这样的:
+ --------------------------- + ------------------ --------------- +
| phone_number |计数|用户|
+ --------------------------- + --------------------- ------------ +
| (xxx)xxx-xxx | 5 | 1,5,9 |
+ --------------------------- + --------------------- ------------ +
phone_number - 重复的电话号码
计数 - 该数字重复的次数
用户 - 具有此编号的用户的ID,以逗号分隔。例子(1,5,9)
我有以下查询找到数字重复,但我需要将其与用户的ID进行比较。并获得用户的ID,这个数字重复。
SELECT `number`, count(`number`) AS `count`, `user_id` from `phones`
GROUP BY `number` HAVING `count` > 1
谢谢:)
答案 0 :(得分:1)
您可以在group_concat
列上使用user_id
获取所需的结果
示例:
select `number` as `phone_number`,
count( `number` ) AS `counts`,
group_concat( `user_id` ) as `users`
from `phones`
group by `number`
having `counts` > 1