У меня есть запрос доктрины, чтобы вернуть всех моих клиентов, принадлежащих к определенному магазину. В общей сложности возвращается 29 записей. Тем не менее, если я бегу счетчика запросов, с почти одинаковым DQL, я получаю разное количество результатовДоктрина: Результаты подсчета возвращают больше, чем получают результаты
QUERY1 - Fetch Результаты:
SELECT c FROM Customer c INNER JOIN c.shops cs WHERE cs.shop IN(2, 3)
возвращений (с использованием счета() для подсчета количества записи возвращаются)
int(29)
Query2 - граф Результаты:
SELECT count(c) FROM Customer c INNER JOIN c.shops cs WHERE cs.shop IN(2, 3)
Retruns:
array(1) { [0]=> array(1) { [1]=> string(2) "36" } }
Я не могу показаться, чтобы работать, как это может происходить? Надеюсь, кто-то может помочь ...
Кстати, выбор правилен, в этих двух магазинах назначено 29 уникальных клиентов. Я предполагаю, что 36 включают дубликаты, но почему один и тот же запрос возвращает другой список? – YorkshireDeveloper
Как насчет 'count (*)' или 'count (id)'? – Maerlyn
count (id) возвращает тот же результат, и вы не можете делать счет (*) в доктрине. Кажется, что есть подразумеваемый DISTINCT где-то, о котором я не просил ... – YorkshireDeveloper