Lehet én néztem be nagyon valamit, de megpróbálol elmondani egyszerűen.
Vagy adatbázik a lekérdezés számára fontos táblákkal.
user_menu (user_id,menu_id) - melyik user melyik menühöz van rendelve
menu (id,menu_group_id) - melyik menü melyik menücsoporban van
menu_group (id,name,...) - a menücsoportok
user_group(menu_id,group_id) - melyik csoporthoz milyen menük tartoznak
own_group(user_id,group_id) - melyik user melyik csoporthoz van rendelve
kb ennyi lenne ami fontos a dologban, hogy elmondhassam
szeretném megtudni, hogy hány menu_group található egy user adott alatt.
A lekérdezés így néz ki:
select menu_group.* from user_menu,menu,menu_group,user_group,own_group where menu_group.id=menu.menu_group_id and (user_menu.menu_id=menu.id or user_group=menu.id) and own_group.group_id=user_group.group_id) and owen_group.user_id=2 and user_menu.user_id=2 group by menu_group.id
lehetnek egyes user_id-nak saját menüjük és a csoporban lévő menükhöz is hozzáférhetnek, aminek tagjuk, így a kapott menülista alapján elméletileg kijönne hogy az adott menük milyen menücsoporban vannak, és magkapnám, hogy adott user hány menücsoporthoz tartozik és melyek ezek.
A gondom az, hogy a user egy csoporthoz sem tartozik, viszok vannak saját menüi, akkor üres eredményt kapok, ha akár 1 csoporjoz is tartozik, márik megkapom az összes eredményt.
Kérlek segítsetek egy helyes select megadásában.