我有这个很好用的查询。我与 Freetrials 和 Contacts 有 N:N 关系,与 Freetrials 和 Companies 有 N:1 关系。免费试用可以有多个联系人,并且联系人可能会注册多个免费试用。免费试用只能有 1 家公司,而公司可能会注册多个免费试用。
SELECT `freetrial`.*,`company`.name as name, `contact`.first_name,`contact`.last_name FROM `contact_freetrial`
INNER JOIN `freetrial` ON `contact_freetrial`.freetrial_id=`freetrial`.id
INNER JOIN `contact` ON `contact_freetrial`.contact_id=`contact`.id
LEFT JOIN `company` ON `company`.id=`freetrial`.company_id
这很好用,直到我有 2 个联系人:
Id Company Contact Date
110 MCC P Sh*** 08/14/2012
110 MCC W Bu*** 08/14/2012
111 Foo x yy*** 08/14/2012
112 BAR y zz*** 08/14/2012
如果有多个联系人,我只想显示一个公司/免费试用。所以我基本上只是希望它看起来像这样:
Id Company Contact Date
110 MCC P Sh*** 08/14/2012
111 Foo x yy*** 08/14/2012
112 BAR y zz*** 08/14/2012
任何帮助它做到这一点将不胜感激。