WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Avancerad select i mysql (https://www.wn.se/forum/showthread.php?t=1040192)

grinditwp 2010-01-25 16:37

Avancerad select i mysql
 
Har ett problem....

Har tabellerna;

user
- id
- name

catalog
- id
- name

group
- id
- name

group2user
- group_id
- user_id

group2catalog
- group_id
- catalog_id

Varje user kan tillhöra en eller flera "groups" och varje catalog kan också tillhöra en eller flera "groups".

Exempelvis;
Peter finns i group1 och group2 och Ola finns bara i group1
I group1 finns catalog1 och i group2 finns catalog2 och catalog3

När vi listar catalog så vill jag enbart att catalog1 ska visas för Ola medan Peter får se alla.

Jag förstår att det behövs göra en query med join och antagligen group.

Jag har testat:
PHP-kod:

//$user_id är inloggad användares id

SELECT cat.*   
FROM catalog cat
JOIN 
(group2user g2u)
ON (g2u.user_id '".$user_id."')
JOIN (group ggroup2catalog g2c)
ON (s.id s2c.group_id && s2c.catalog_id cat.id)
GROUP BY cat.id 

..men får fram alla kataloger för alla användare.

grinditwp 2010-01-25 17:03

Löste det hela själv med;

PHP-kod:

SELECT catalog.*
FROM usercataloggroupgroup2usergroup2catalog
WHERE group2user
.user_id user.id
AND group2user.group_id group.id

AND group2catalog.group_id group.id
AND group2catalog.catalog_id catalog.id

AND user.id $user_id
GROUP BY catalog
.id 



Alla tider är GMT +2. Klockan är nu 06:05.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson