too long

I'm having some issues with trying to fix this SQL Query

This is a custom search query which is searching for the word 'weddings' on all pages on this CMS system.

At the moment I am getting the same page appear on the first 5 rows because the word 'weddings' appears 5 times. What I want to do is combine the rows with the same ID number into 1 row so it doesn't appear multiple times.

I thought doing a group by at the end of this statement would do this but I keep getting an SQL syntax error

GROUP BY `documents`.`id`

I have attached the full SQL bellow with an image of the output i currently get.... Any idea?

SELECT `documents`.*, 
`documenttypes`.`name` as `doctype`, 
`articles`.`id` as `article_id`, 
`articles`.`language_id`, 
`articles`.`title`, 
`articles`.`template`, 
`articles`.`slug`, 
`articles`.`path`, 
`articles`.`slug_title`,
MATCH ( elements.textvalue )AGAINST ( 'weddings' ) AS score, 
elements.textvalue AS matching, 
LOWER(`articles`.`title`) 
LIKE '%weddings%' as 'like_title', 
( MATCH ( elements.textvalue ) 
AGAINST ( 'weddings' ) ) + IF(( LOWER(`articles`.`title`) 
LIKE '%weddings%'),1, 0) + IF((LOWER(`elements`.`textvalue`) 
LIKE '%weddings%'),1, 0) as total FROM (`documents`) 
LEFT JOIN `articles` ON `articles`.`document_id` = `documents`.`id` 
LEFT JOIN `documenttypes` ON `documents`.`documenttype_id` = `documenttypes`.`id` 
LEFT JOIN `documents_users` AS du ON `documents`.`id` = du.`document_id` 
LEFT JOIN `documents_usergroups` AS dug ON `documents`.`id` = dug.`document_id`
LEFT JOIN elements ON `elements`.`article_id` = `articles`.`id` 
WHERE `documents`.`trashed` = 0 
AND `documents`.`published` = 1 
AND `articles`.`status_id` = 1 
AND `articles`.`language_id` = 1 
AND (`documents`.`no_search` = '0' 
OR `documents`.`no_search` IS NULL) 
AND ( (dug.usergroup_id IS NULL) 
AND (du.user_id IS NULL) ) 
AND (`documents`.`startdate` < NOW() 
OR `documents`.`startdate` = '0000-00-00 00:00:00' OR `documents`.`startdate` IS NULL) 
AND (`documents`.`enddate` > NOW() 
OR `documents`.`enddate` = '0000-00-00 00:00:00' 
OR `documents`.`enddate` IS NULL) 
HAVING (total > 0) 
ORDER BY label ASC, 
total DESC LIMIT 0,10

enter image description here

You can try to use the statement DISTINCT:

SELECT DISTINCT 'documents'.*, 
'documenttypes'.'name' as 'doctype', 
'articles'.'id' as 'article_id',
... 

GROUP BY lets you use aggregate functions, like AVG, MAX, MIN, SUM, and COUNT which apparently you don't use.