У меня следующий запрос, и он получает первый результат «Редактировать: каждого контакта», как я хочу, но после этого мне не нужны никакие другие результаты для каждого контакта. Так, например, если у них есть 3 телефона #, и один из них главный, он дает мне основной, а другой 2. Я пробовал группировать, но в итоге получаю первый, независимо от того, основной или нет. Любые мысли о том, как я мог бы сделать это без проверки php в цикле, если контакт уже существует?
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.