@Manu_habr

Как сформировать запрос так, чтобы limit был по определенному количеству уникальных полей?

Есть такой запрос:
SELECT 
       contacts.id as id, 
       contacts.name as name, 
       phone.phone as phone, 
       email.email as email 
FROM contacts 
LEFT JOIN phone 
ON 
contacts.phone = phone.phone_id 
LEFT JOIN email 
ON 
contacts.email = email.email_id
LIMIT 6


Который возвращает:
604ca204d1c3f508190072.jpeg

Как сделать так, чтобы LIMIT был не по количеству записей, а по количеству уникальных полей столбца name?
  • Вопрос задан
  • 70 просмотров
Решения вопроса 1
bingo347
@bingo347
Crazy on performance...
Первое, что на ум приходит - GROUP BY, но с ним придется как-то агрегировать остальные поля.
Еще как вариант - делать запрос на запрос с лимитом, что-то вроде:
SELECT 
       c.id AS id, 
       c.name AS name, 
       phone.phone AS phone, 
       email.email AS email 
FROM (SELECT id, name, phone, email FROM contacts LIMIT 6) AS c 
LEFT JOIN phone 
       ON c.phone = phone.phone_id 
LEFT JOIN email 
       ON c.email = email.email_id
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы