sql查询以选择两列中具有相同id但不同值的记录

Posted

技术标签:

【中文标题】sql查询以选择两列中具有相同id但不同值的记录【英文标题】:sql query to select record having same id but different values in two columns 【发布时间】:2021-03-18 01:22:00 【问题描述】:

我尝试了几个小时并阅读了很多帖子,但我仍然不知道如何处理这个请求

我有一张这样的桌子

Name        Phone

John        62778282
Alok        67828888
Rahul       68999999
Yash        97788899
John        99989999
Rahul       99992222

输出应该是这样的:

Name        Phone

John        62778282 , 99989999
Alok        67828888
Rahul       68999999 , 99992222
Yash        97788899

请任何人帮助我得到这个结果

【问题讨论】:

查看this 问题。它的情况比你的要复杂一些,但它正在使用你需要的东西。您需要将电话号码分组并按名称分组。 这能回答你的问题吗? How to use GROUP_CONCAT in a CONCAT in mysql 你提到了 php,所以考虑在那里处理显示问题 【参考方案1】:

Group ByGROUP_CONCAT

SELECT Name, GROUP_CONCAT(Phone) AS Phone  FROM phonetable GROUP BY Name

【讨论】:

【参考方案2】:

在这种情况下,您可以将 GROUP_CONCAT 与 GROUP BY 一起使用:

SELECT 
    `Name`,
    GROUP_CONCAT(`Phone`) AS `Phone`
FROM `Table`
GROUP BY `Name`;

结果SQL query

+=======+===================+
| Name  | Phone             |
+=======+===================+
| Alok  | 67828888          |
| John  | 62778282,99989999 |
| Rahul | 62778282,99992222 |
| Yash  | 97788899          |
+-------+-------------------+

【讨论】:

以上是关于sql查询以选择两列中具有相同id但不同值的记录的主要内容,如果未能解决你的问题,请参考以下文章

SQL - 选择两列中具有相同值的行

如何选择在某列中具有相同值的所有行

从不同的相关记录组中选择两列之一中包含重复值的所有行

如何检索表的值以获取sql中两列的最大值

访问具有相同 ID 但在其他 2 列中具有不同值的选择行

需要 SQL 在不同的列中查找具有重复值的记录