我有以下查詢,它得到第一個結果「編輯:每個聯繫人」,因爲我想,但我不需要任何其他結果後每個聯繫人。所以舉個例子,如果他們有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