cyecloneMedlem sedan dec. 2004147 inlägg Godkväll!
Har en liten fråga. Jag har två stycken tabeller:
Groups
.ID
.group_name
Groups_Members
.group_id
.username
.status
Där Groups_Members.group_id = Groups.ID
Man kan vara med i flera grupper med samma "username".
Har även en Session("username")
Jag vill hämta Groups.ID & Groups.group_name genom att kolla vart Session("username") = Group_Members.username och status måste vara = "member"
Nu blev det jätte rörigt...
Men om ni förstår gåtan ovan så vill jag lösa detta med en snygg SELECT-fråga, om det är möjligt..?
Mvh
"<din inner join frågor etc ... WHERE Groups_Members.username = '" & Session("Username") & "'"
Det känns som det är lite konstig databasdesign du har, har du även en "Members" tabell?
cyecloneMedlem sedan dec. 2004147 inlägg Tack för svar.
Tycker också den känns lite konstig.. Om inte annat rörig :)
Har en tabell för "Users" där en massa information om användaren sparas.
Vet inte hur jag ska lösa det annars, men just Grupp tabellerna finns där nu för att man sedan ska kunna anmäla en hel grupp till ett event, det ska även gå bra att anmäla sig utan en grupp.
Ska testa din kod och se om jag får det att fungera!
Man brukar ha:
Groups
--GroupId
--GroupName
...
Group_user
--GroupId
--UserId
users
--UserId
--UserName
...
SELECT g.* FROM users u INNER JOIN Group_user gu ON gu.UserId = u.UserID INNER JOIN Groups g ON g.GroupId = gu.GroupId WHERE u.UserName = 'cyeclone'
Så får du en lista på de grupper "cyeclone" är medlem i
cyecloneMedlem sedan dec. 2004147 inlägg Nu har jag ett annat problem:
Har använt mig av en INNER JOIN som hämtar de grupper som användaren är medlem i, ungefär som scriptet ovan. Detta gör jag med hjälp av en loop.
Användarna har olika status som "owner" "member" och "request" för dom som ansökt till gruppen men inte blivit accepterade.
I denna loopen som listar alla gruppen som användaren är "owner" i vill jag samtidigt spara ett värde i en sträng så man kan se om någon har statusen request.
Ex:
Grupp1
Grupp2 - Ny ansökan
Grupp3
Finns det något smidigt sätt att lösa även detta på?
Ligger den i "Group_user" så är det ju bara att ta med dig det i SQL frågan
SELECT g.* .... säger hämtar allt ifrån "g" som är Alias för Group (se SQL frågan ovan).
SELECT g.*, if(gu.status = 'request', 'Ny ansökan', '') AS status
FROM users u
INNER JOIN Group_user gu ON gu.UserId = u.UserID
INNER JOIN Groups g ON g.GroupId = gu.GroupId WHERE u.UserName = 'cyeclone'
Jag gissar att statusen lagras som en kolumn i Group_user. Då kan du göra som ovan.
Edit: Bort med BB-koden.