[RESOLU] Requête SQL SELECT double résultats

Petit nouveau ! | 4 Messages

20 juil. 2021, 09:14

Bonjour,

Je me permets de laisser un message ici car je bloque depuis pas mal de temps sur une requête qui fonctionne parfaitement mais à l'ajout d'un élément j'obtiens un double résultat, étant débutant PHP/SQL je ne sais pas trop comment résoudre ça...

La requête va chercher dans une base de données GLPI les éléments que je veux, tout fonctionne, mais lorsque je rajoute les moniteurs:

		LEFT OUTER JOIN glpi_computers_items
			ON glpi_computers.id = glpi_computers_items.computers_id
		LEFT OUTER JOIN glpi_monitors
			ON glpi_computers_items.items_id = glpi_monitors.id

Mes résultats sont bons mais d'une part en affichage la requête ne sort qu'un moniteur sur les deux si il y en a deux et lorsqu'il y en a deux cela double mes résultats pour computermacname

			   GROUP_CONCAT(glpi_networkports.name,' | ',glpi_networkports.mac) as computermacname

Voici la requête complète

SELECT glpi_computers.name as computername, 
			   glpi_computers.id as computerid, 
			   glpi_computers.serial as computerserial, 
			   glpi_computers.contact as personne, 
			   glpi_documents.id as documentid, 
			   glpi_documents_items.items_id as itemid, 
			   glpi_documents.id as docid, 
			   glpi_documents.filename as filename, 
			   glpi_documents.filepath as filepath, 
			   glpi_computers_items.itemtype as moniteurs1,
			   glpi_monitors.name as moniteurs2,
			   glpi_plugin_fusioninventory_agents.last_contact as contact,
			   glpi_plugin_fusioninventory_inventorycomputercomputers.remote_addr as ip,
			   GROUP_CONCAT(glpi_networkports.name,' | ',glpi_networkports.mac) as computermacname
		FROM glpi_computers
		INNER JOIN glpi_plugin_fusioninventory_agents 
			ON glpi_computers.id = glpi_plugin_fusioninventory_agents.computers_id 
		LEFT OUTER JOIN glpi_documents_items 
			ON glpi_computers.id = glpi_documents_items.items_id
		LEFT OUTER JOIN glpi_documents 
			ON glpi_documents.id = glpi_documents_items.documents_id
		LEFT OUTER JOIN glpi_networkports 
			ON glpi_computers.id = glpi_networkports.items_id
		LEFT OUTER JOIN glpi_computers_items
			ON glpi_computers.id = glpi_computers_items.computers_id
		LEFT OUTER JOIN glpi_monitors
			ON glpi_computers_items.items_id = glpi_monitors.id
		LEFT OUTER JOIN glpi_plugin_fusioninventory_inventorycomputercomputers
			ON glpi_computers.id = glpi_plugin_fusioninventory_inventorycomputercomputers.computers_id
		WHERE glpi_computers.name $like
		GROUP BY glpi_computers.id
		ORDER BY glpi_computers.id ASC

Je ne sais pas si j'ai été clair concernant ce problème mais je vous remercie d'avance si quelqu'un a la gentillesse de me donner un coup de pouce !

Bonne journée !