kracker
20.02.2008, 14:51:29
Hallo Leute, komme eifnach nicht weiter mit meiner Query:
Ich möchte ALLE Fotos eines bestimmten Benutzers anzeigen lassen, exklusive derer, die in einer Berechtigungsgruppe sind.
Folgende Tabellen:
USERS - userID name nick .........
GALLERYGROUPS - groupID name alias .........
GALLERYGROUP2USERS - groupID userID
GALLERYGROUP2FOTO - groupID fotoID
GALLERYFOTOS - fotoID userID(=erstellerID) ..........
Semantik:
.) Wenn in GALLERYGROUP2FOTO zu einem Foto KEIN eintrag existiert -> Foto ist für ALLE Sichtbar (= auf jeden fall auslesen und anzeigen lassen)
.) Wenn in GALLERYGROUP2FOTO zu einem Foto ein eintrag mit groupID = 0 existiert -> Foto ist für ALLE Sichtbar
.) existiert hingegen mindestens ein Eintrag in dieser Tabelle zu einem Foto -> Foto ist genau für diese Gruppe sichtbar (es kann zu einem Foto auch mehrere Gruppen/Einträge geben)
Hier meine versuchte Query (leider bekomme ich dazu immer ein Empty 0 Rows)
SELECT a.fotoID, a.name, a.alias, unix_timestamp(a.changeTime), a.teaserImgType, a.description FROM GALLERYFOTOS=a
JOIN GALLERYGROUP2FOTO=g1 ON ((a.fotoID=g1.fotoID AND g1.groupID=0) OR (a.fotoID=g1.fotoID AND g1.groupID IS NULL))
JOIN GALLERYGROUP2USERS=g2 ON (a.fotoID = g1.fotoID AND g1.groupID = g2.groupID AND g2.userID = $Session(UserID))
WHERE a.userID='$photoCreatorID'
Ansich müsste es passen, aber ich komm einfach nicht mehr weiter.
bin für jede hilfe dankbar!
mfg
Ich möchte ALLE Fotos eines bestimmten Benutzers anzeigen lassen, exklusive derer, die in einer Berechtigungsgruppe sind.
Folgende Tabellen:
USERS - userID name nick .........
GALLERYGROUPS - groupID name alias .........
GALLERYGROUP2USERS - groupID userID
GALLERYGROUP2FOTO - groupID fotoID
GALLERYFOTOS - fotoID userID(=erstellerID) ..........
Semantik:
.) Wenn in GALLERYGROUP2FOTO zu einem Foto KEIN eintrag existiert -> Foto ist für ALLE Sichtbar (= auf jeden fall auslesen und anzeigen lassen)
.) Wenn in GALLERYGROUP2FOTO zu einem Foto ein eintrag mit groupID = 0 existiert -> Foto ist für ALLE Sichtbar
.) existiert hingegen mindestens ein Eintrag in dieser Tabelle zu einem Foto -> Foto ist genau für diese Gruppe sichtbar (es kann zu einem Foto auch mehrere Gruppen/Einträge geben)
Hier meine versuchte Query (leider bekomme ich dazu immer ein Empty 0 Rows)
SELECT a.fotoID, a.name, a.alias, unix_timestamp(a.changeTime), a.teaserImgType, a.description FROM GALLERYFOTOS=a
JOIN GALLERYGROUP2FOTO=g1 ON ((a.fotoID=g1.fotoID AND g1.groupID=0) OR (a.fotoID=g1.fotoID AND g1.groupID IS NULL))
JOIN GALLERYGROUP2USERS=g2 ON (a.fotoID = g1.fotoID AND g1.groupID = g2.groupID AND g2.userID = $Session(UserID))
WHERE a.userID='$photoCreatorID'
Ansich müsste es passen, aber ich komm einfach nicht mehr weiter.
bin für jede hilfe dankbar!
mfg