PHP: При добавлении GROUP BY i get error Попытка получить свойство не объекта

Привет, мой код работает отлично, но когда я добавляю GROUP BY, я получаю ошибку, СПАСИБО В ADVANCE:

$sql_query = $connection->query("SELECT * FROM `chat` WHERE `sent_to` = '1'");-Work perfect $sql_query = $connection->query("SELECT * FROM `chat` WHERE `sent_to` = '1' GROUP BY `sent_by`");- Not Work Notice: Trying to get property of non-object 

Код:

 $sql_query = $connection->query("SELECT * FROM `chat` WHERE `sent_to` = '1' GROUP BY `sent_by`"); if($sql_query->num_rows > 0) { while ($fetch_data = $sql_query->fetch_array(MYSQLI_ASSOC)) { echo $fetch_data["text"]. "</br>"; } } 

Таблица: ЗДЕСЬ

 CREATE TABLE IF NOT EXISTS `chat` ( `id` int(11) NOT NULL AUTO_INCREMENT, `sent_by` int(11) NOT NULL DEFAULT '0', `sent_to` int(11) NOT NULL DEFAULT '0', `user_id` int(11) NOT NULL DEFAULT '0', `text` text COLLATE utf8mb4_general_ci NOT NULL, `seen` enum('0', '1') NOT NULL DEFAULT '0', `time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8 COLLATE = utf8_unicode_ci AUTO_INCREMENT = 1; 

mysqli возвращает false при ошибке. Это означает, что ваша группа по запросу не удалась. Это, в свою очередь, подразумевает, что вы используете mysql 5.7 и

MySQL 5.7.5 и выше реализует обнаружение функциональной зависимости. Если включен режим ONLY_FULL_GROUP_BY SQL (который он по умолчанию), MySQL отклоняет запросы, для которых список выбора, условие HAVING или список ORDER BY относятся к неагрегированным столбцам, которые не имеют ни имени в предложении GROUP BY, ни функционально зависят от них , (До 5.7.5 MySQL не обнаруживает функциональную зависимость, а ONLY_FULL_GROUP_BY по умолчанию не включен. Описание поведения до 5.7.5 см. В Справочном руководстве MySQL 5.6.)

Другими словами, запрос, который вы пытаетесь, является недопустимым SQL. Mysql разрешил вам выполнять такие запросы до 5.7, но больше не нужно. Но вы все равно можете запустить его с ANY_VALUE функции ANY_VALUE или отключить FULL_GROUP_BY . Однако это все равно сделает ваш запрос недопустимым SQL, как указал Фред.

Единственное реальное решение – это изменить ваш запрос. Например, будет работать следующее.

 SELECT sent_by FROM `chat` WHERE `sent_to` = '1' GROUP BY `sent_by` 

Очевидно, вы пытаетесь получить текстовый столбец. Таким образом, для ANSI SQL-совместимого запроса вам нужно немного работать

 SELECT a.sent_by, a.`text` FROM chat a INNER JOIN ( SELECT sent_by FROM `chat` WHERE `sent_to` = '1' GROUP BY `sent_by`) AS B ON a.sent_by = b.sent_by and a.sent_to = 1