mysql - 在mysql中将两行合并为一行

标签 mysql join rows

你好,我很抱歉,但我无法解决这个问题...我是初学者,不知道该怎么做...我有代码

SELECT a.firstname, a.surname, b.contact
FROM crm_client a
JOIN crm_client_contact b ON ( a.id = b.id_client ) 
WHERE id_iz =  '98'

结果是我

name1 surname1 email1
name1 surname1 phonenumber1
name2 surname2 email2
name2 surname2 phonenumber2

我希望在下一列中有电话号码 电子邮件和电话号码有 id_contact 列...其中 1 是电话,2 是电子邮件... 有人能帮帮我吗?

最佳答案

如果这始终是格式 -> only phone number + email per name ,那么你可以简单地这样做:

SELECT a.firstname, a.surname, MAX(b.contact) as email, MIN(b.contact) as phone_number
FROM crm_client a
JOIN crm_client_contact b ON ( a.id = b.id_client ) 
WHERE id_iz =  '98'
GROUP BY a.firstname,a.surname

这应该可行,因为数字在 ASCI 表中的位置低于字母,因此 - MIN 将选择电话号码,而 MAX 将选择电子邮件地址。

请注意,如果可能只存在 1 个值,则两列都将包含它。

关于mysql - 在mysql中将两行合并为一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46282208/

相关文章:

mysql - 如何使用mysql查询使用group by查找该组使用的所有UNIQ标题

python - 如何与通配符合并? - Pandas

mysql - 登录laravel时如何检查表company的字段comp_status?

linux - 每第 n 行将行转换为列

database - R - 将矩阵中的每个值除以其行/列的最大值

mysql - 在单个 SELECT 语句中获取数据的每月分布

mysql - 数据库设计: what fields are must for a user table in database?

javascript - 自动完成 Jquery 多行

MySQL 和时区

php - Codeigniter - 加入同一个表并用数组搜索