我有以下查询,它得到第一个结果“编辑:每个联系人”,因为我想,但我不需要任何其他结果后每个联系人。所以举个例子,如果他们有3个电话号码,一个是主要的,它给了我主要的,然后是另一个2.我尝试了分组,但最终无论是否主要都会得到第一个。任何想法如何我可以做到这一点,而不做一个PHP检查循环,如果联系已经存在?mysql在哪里条件优先
SELECT pc.firstname, pc.lastname, pp.areacode, pp.prefix, pp.last4
, if(pc.mainphone = pp.phoneid,1,0) as phone_priority
FROM contacts pc
JOIN phone pp ON ((pp.contid = pc.contid && pp.phoneid = pc.mainphone) || (pp.contid = pc.contid))
ORDER BY pc.lastname ASC, pc.firstname ASC, phone_priority DESC
表设置:
contacts (id, firstname, lastname, mainphone) phone (id, areacode, prefix, last4)
使用MySQL 4.
不能使用限制。我需要了解联系人的完整列表。 – David 2011-04-14 13:36:54
JOIN或LEFT JOIN;由于||而没有区别“或”声明部分 – David 2011-04-14 13:38:51
使用左连接时删除||部分标准。 – Chandu 2011-04-14 13:40:05