fortfarande svåra frågor

Databaser & SQL

3 svar · 173 visningar · startad av OveRRidE

Medlem sedan feb. 200112 078 inlägg
Trådstart#1

Ju! Nu skall ni få nåt kul att suga på:

Jag har tre tabeller:

news
id | nyhRubrik

newsg_join
grpId | newsId

groups_join
grpJGroupId | grpJUserId

Jag vill hämta alla nyheter ur news som tillhör en eller flera grupper, och användaren som accessar sidan, skall således se de nyheter som han har tillgång till, beroende på sitt gruppmedlemskap i en eller flera grupper.

Gruppmedlemskapet sparas i groups_join med userid och gruppid.
Information om vilken nyhet som hör till vilken grupp sparas i newsg_join med gruppid och nyhetsid.

Observera att användaren kan vara medlem i flera grupper och att om två grupper har fått samma nyhet tilldelad, så skall den bara visas en gång.

Kriteriet WHERE sätts av session("userid").

Nån som fattar? ;)

[red.]Ändrade lite

Medlem sedan dec. 200012 464 inlägg
#2
select distinct n.id,n.nyhetsrubrik 
  from (news as n inner join
       newsg_join as ng 
   on n.id = ng.newsid ) inner join 
       groups_join as gj
   on ng.grpid = gj.grpJgroupid
 where gj.grpJuserid = 4711
Medlem sedan feb. 200112 078 inlägg
#3

[red.]Mitt fel. Du hade skrivit fel på ett kolumnnamn.[/red.] :r

Jag skall köra ett par tester, jag återkommer. Tack!

Medlem sedan feb. 200112 078 inlägg
#4

LarsG skrev:

select distinct n.id,n.nyhetsrubrik 
  from (news as n inner join
       newsg_join as ng 
   on n.id = ng.newsid ) inner join 
       groups_join as gj
   on ng.grpid = gj.grpJgroupid
 where gj.grpJuserid = 4711

Jag drar upp denna tråd igen, hur får jag så att det inte blir några dubletter av nyheterna? Få ju inte använda distinct på PM- eller MEMO-fält. :l

256 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
115 ms — ändringar (db)