Bonjour,

J'essaye de définir la fonction suivante en MySQL 5.5 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
CREATE FUNCTION GroupesLies( @IDgroupe INT )
  RETURNS TABLE
AS
  RETURN
    (SELECT DISTINCT tb2.IDgroupe
     FROM         tb_usr_groupe tb1
       INNER JOIN tb_usr_groupe tb2
         ON   tb1.IDgroupe = @IDgroupe
          AND tb1.IDusr = tb2.IDusr
     ORDER BY tb2.IDgroupe)
Explication : la table "tb_usr_groupe" stocke des liens entre utilisateurs et groupes. Un utilisateur peut faire partie de plusieurs groupes.
Cette fonction prend en argument un groupe, parcourt la liste des utlisateurs de ce groupe, et renvoie la lise de tous les groupes auxquels ces utilisateurs appartiennent.

J'ai tapé la requête "SELECT DISTINCT ... ORDER BY tb2.IDgroupe" toute seule (en remplaçant "@IDgroupe" par une valeur fixe), elle fonctionne, et me renvoie le résultat attendu.

Mon problème : j'essaye de faire manger la définition de la fonction ci-dessus à mon phpmyadmin, il me dit qu'il y a une erreur de syntaxe "près de @IDgroupe INT ) ....". Je n'arrive pas à comprendre laquelle.

Merci d'avance pour votre aide,