您好我很抱歉但是我无法解决这个问题...我初学者并且不知道该怎么做...我有代码
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
我想在下一栏中找到电话号码 电子邮件和phonenumber有id_contact列...其中1表示电话,2表示电子邮件... 有人帮我吗?
答案 0 :(得分:0)
如果这始终是格式 - >每个名字只有电话号码+电子邮件,那么您可以这样做:
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个值,则两个列都将包含它。
答案 1 :(得分:0)
group_concat& amp;的另一种方法字符串函数
select a.`firstname`, a.`surname`,
substring_index(group_concat(b.`contact`),',',1) as email,
substring_index(group_concat(b.`contact`),',',-1) as phone
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`