mysql - 在mysql上显示用户编号没有问题

标签 mysql sql

我有 2 个简单的表格,如下所示

用户

id   name     surname
1    John     Douglas
2    Sam      Morris
3    Michael  Johnatan

细胞

id   userId     cellPhone
1    1         13809876543
2    1         13809876525
3    2         13809876450

我想在最后只使用 Mysql 得到的结果:

结果

name     surname     cellPhone
John     Douglas     13809876543,13809876525
Sam      Morris      13809876450
Michael  Johnatan  

这是我的sql查询

SELECT
    o.name,
    o.surname,
    CONCAT(ons.cellPhone, ',', ons2.cellPhone) as CellPhone
FROM
    users as o
LEFT JOIN cells as ons
    ON o.id = ons.userId
LEFT JOIN cells as ons2
    ON o.id = ons2.userId AND
       ons.id NOT LIKE ons2.id
GROUP BY o.id

所以,在这种情况下,最后我得到了这个结果:

结果

Name     Surname     Phones
John     Douglas     13809876543,13809876525
Sam      Morris      
Michael  Johnatan

可以看到,sql并没有显示Sam的手机。据我了解,它会在用户有 2 个电话号码时显示。我尝试了很多来修复它。如果有人帮忙,我将不胜感激..

最佳答案

你可以这样做:

SELECT
    users.name,
    users.surname,
    GROUP_CONCAT(cells.cellPhone) as CellPhone
FROM
    users
LEFT JOIN cells
    ON users.id = cells.userId
GROUP BY users.id

引用:

关于mysql - 在mysql上显示用户编号没有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26297703/

相关文章:

sql - SSRS 正在锁定表

sql - 如何将隐式连接重写为显式连接?

mysql - 获取的关联中不允许使用 with 子句

mysql - 更改 MySQL 日期表示形式

mysql - 在对数据进行建模时,对每年添加的每个用户增长 1000 倍的表进行建模的最佳方法是什么?

php - 如何更改 SQL 表的日期(使用 phpmyadmin)?

android - 无法将用户登录详细信息从数据库检索到我的 Android 应用程序中

c# - 如何使用 C# 备份 Mysql 数据库中的表

mysql - 加入 MySQL 时转置数据

mysql - SQL查询计数唯一值并返回单行