Syntaxe de définition d'une fonction
Bonjour,
J'essaye de définir la fonction suivante en MySQL 5.5 :
Code:
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,