как получить единственное значение group by оператором с включенным only_full_group_by в mysql

0

Я пытаюсь привлечь любого клиента, связанного с такой компанией:

select company_id, id from 'customer' 
where company_id IS NOT NULL 
group by 'company_id'

Я получаю сообщение об ошибке:

Выражение №2 списка SELECT не относится к предложению GROUP BY и содержит неагрегированный столбец customer.id, который функционально не зависит от столбцов в предложении GROUP BY; это несовместимо с sql_mode = only_full_group_by

Как я могу это сделать, не отключая only_full_group_by?

Теги:
group-by

1 ответ

0

GROUP BY предназначен для использования с совокупными функциями. Используйте LIMIT для получения одной строки.

select company_id, id from 'customer' 
where company_id IS NOT NULL 
limit 1

EDIT: (после выяснения вопроса):

Если вам нужна каждая уникальная комбинация company_id и customer_id, используйте DISTINCT:

select distinct company_id, id 
from 'customer' 
where company_id IS NOT NULL 
  • 0
    Это возвращает только одну строку. Я хочу вернуть 1 строку для отношения один ко многим между клиентом и компанией.
  • 0
    В этом случае используйте оптимизацию DISCTINCT. В отчете каждая похожая строка показана только один раз.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню