我有一个mysql数据库名为communication
的表,它的列和值是:
表及其列和值为:
从上表中,我需要选择如下值:contact
contact_id
f_name
l_name
phone_number
email_address
creation_date
实际上我不是一个数据库程序员。你可以问what have you tried so far?
。我不知道试试这个。每个问题都有解决的办法,所以我在这里要求改数据库设计,也不知道是不是这个愚蠢的想法。
如果有人有办法的话,那对我会很有帮助的。
注意:电子邮件地址和电话号码来自communication
表,并有medium
字段的帮助。并且communication
表格只能有两种介质,即MAIL
和PHONE
。EMAIL
是错误的记录,因此EMAIL
也是MAIL
。
谢谢
最佳答案
您必须加入communication
两次,具体取决于medium
。这应该可以完成工作(未经测试):
SELECT con.contact_id, con.f_name, con.l_name, com1.value AS phone_number, com2.value AS email_address, con.creation_date
FROM contact con
LEFT JOIN communication com1 ON com1.contact_id = con.id AND com1.medium = 'PHONE'
LEFT JOIN communication com2 ON com2.contact_id = con.id AND com2.medium LIKE '%MAIL%'