tengo las siguientes tablas. grupos tabla que contiene grupos ordenados jerárquicamente y group_member que almacena a la que los grupos de un usuario pertenece a.SQL Recursion
groups
---------
id
parent_id
name
group_member
---------
id
group_id
user_id
ID PARENT_ID NAME
---------------------------
1 NULL Cerebra
2 1 CATS
3 2 CATS 2.0
4 1 Cerepedia
5 4 Cerepedia 2.0
6 1 CMS
ID GROUP_ID USER_ID
---------------------------
1 1 3
2 1 4
3 1 5
4 2 7
5 2 6
6 4 6
7 5 12
8 4 9
9 1 10
Deseo recuperar los grupos visibles para un usuario determinado. Eso quiere decir grupos a los que pertenece un usuario e hijos de estos grupos. Por ejemplo, con los datos anteriores:
USER VISIBLE_GROUPS
9 4, 5
3 1,2,4,5,6
12 5
Estoy obteniendo estos valores usando la recursividad y varias consultas en la base de datos. Pero me gustaría saber si es posible hacerlo con una sola consulta SQL para mejorar el rendimiento de mi aplicación. Estoy usando MySQL.
El enlace codeproject está escrito para SQL Server. Puede que no sea fácil adaptar ese código para mySQL, pero aquí está la referencia mySQL en los cursores: http://dev.mysql.com/doc/refman/5.0/en/cursors.html – Prestaul