我有一个mysql数据库名为communication的表,它的列和值是:
表及其列和值为:
从上表中,我需要选择如下值:
contactcontact_idf_namel_namephone_numberemail_addresscreation_date
实际上我不是一个数据库程序员。你可以问what have you tried so far?。我不知道试试这个。每个问题都有解决的办法,所以我在这里要求改数据库设计,也不知道是不是这个愚蠢的想法。
如果有人有办法的话,那对我会很有帮助的。
注意:电子邮件地址和电话号码来自communication表,并有medium字段的帮助。并且communication表格只能有两种介质,即MAILPHONEEMAIL是错误的记录,因此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%'

08-19 13:48