Kom ihåg mig?
Home Menu

Menu


Hjälp med SQL-sats

Ämnesverktyg Visningsalternativ
Oläst 2008-05-13, 12:30 #1
xarphs avatar
xarph xarph är inte uppkopplad
Flitig postare
 
Reg.datum: Feb 2007
Inlägg: 346
xarph xarph är inte uppkopplad
Flitig postare
xarphs avatar
 
Reg.datum: Feb 2007
Inlägg: 346
Hej!

Jag har en databasstruktur som ser ut såhär:

Kod:
blogs (här ligger information om alla bloggarna)
- id
- name
- url
- feedUrl

bevakningar (knyter samman en användare med en blogg):
- id
- blog_id
- user_id
- usercategory_id

notifications: (posts från dom olika bloggarna)
- id
- title
- url
- date
- excerpt
- imageurl
- readed (växlar mellan 0/1) beroende om man har läst det eller inte.

users:
- id
- name
- password
- mail

usercategories: (Personliga kategorier för varje användare)
- id
- name
- user_id
Det jag behöver hjälp med är att skapa en SQL-sats som på smidigast sätt hämtar alla posts (notifications) från bloggen/bloggarna som är kopplad till en vald användarkategorin (usercategories) och sorterar sedan postsen efter datumet (date). Varje användare har olika kategorier, så det är för en specifik användare...

Dom personliga kategorierna ligger i tabellen 'usercategories' och är kopplad till tabellen 'bevakningar' via kolumnen usercategory_id

Antar att jag måste använda en Inner Join, men får inte rätt på det.

En användare ska alltså kunna skapa personliga kategorier som dom kan lägga till olika bloggar i. T.ex. om man vill ha dom bloggarna man följer mest .. så skapar man en kategori vid namn typ "VIP" och lägger till bloggarna i den kategorin.

Problemet här är att hämta alla posts från den personliga kategorin.

Någon som har en aning på hur man kan lösa detta?

Hoppas det inte blev allt för flummigt nu.
xarph är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-05-13, 13:57 #2
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
Hur knyter du ihop notifications och blogs?
Magnus_A är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-05-13, 13:59 #3
Alexs avatar
Alex Alex är inte uppkopplad
Administratör
 
Reg.datum: Sep 2004
Inlägg: 1 621
Alex Alex är inte uppkopplad
Administratör
Alexs avatar
 
Reg.datum: Sep 2004
Inlägg: 1 621
Var är relationen mellan notifications och blogs?
__________________
@Zn4rK - Börja blogga - Paintball i Göteborg
Det jag skriver är mina personliga åsikter och återspeglar inte vad WN eller andra företag jag representerar tycker.
Alex är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-05-13, 14:37 #4
xarphs avatar
xarph xarph är inte uppkopplad
Flitig postare
 
Reg.datum: Feb 2007
Inlägg: 346
xarph xarph är inte uppkopplad
Flitig postare
xarphs avatar
 
Reg.datum: Feb 2007
Inlägg: 346
Tack för snabbt svar.

Glömde skriva till ett par kolumner i notifications-tabellen, ber om ursäkt.

Såhär ser strukturen för notifications ut:

Kod:
notifications: (posts från dom olika bloggarna)
- id
- title
- url
- user_id
- blog_id
- date
- excerpt
- imageurl
- readed (växlar mellan 0/1) beroende om man har läst det eller inte.
Tack.
xarph är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-05-13, 15:02 #5
MMCs avatar
MMC MMC är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jan 2008
Inlägg: 560
MMC MMC är inte uppkopplad
Mycket flitig postare
MMCs avatar
 
Reg.datum: Jan 2008
Inlägg: 560
Jag tycker att din struktur verkar aningen spretig, men jag gör ett snabbt, otestat försök:

SELECT * FROM notifications WHERE blog_id IN (SELECT blog_id FROM bevakningar WHERE usercategory_id = ?) ORDER BY date DESC
MMC är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-05-13, 17:17 #6
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
select not.id, not.title, not.url (...) from notifications not, bevakningar bev
where
bev.usercategory_id=valt värde and
bev.blog_id=not.blog_id
förutsatt att varje användare har globalt unika kategorier för sina bloggar. Annars får man lägga till ett till kriterium på användare.
Magnus_A är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-05-13, 18:04 #7
xarphs avatar
xarph xarph är inte uppkopplad
Flitig postare
 
Reg.datum: Feb 2007
Inlägg: 346
xarph xarph är inte uppkopplad
Flitig postare
xarphs avatar
 
Reg.datum: Feb 2007
Inlägg: 346
Citat:
Originally posted by Magnus_A@May 13 2008, 17:17
select not.id, not.title, not.url (...) from notifications not, bevakningar bev
where
bev.usercategory_id=valt värde and
bev.blog_id=not.blog_id
förutsatt att varje användare har globalt unika kategorier för sina bloggar. Annars får man lägga till ett till kriterium på användare.
Tack, det fungerade alldeles utmärkt!

Jag la till: AND notifications.user_id = '{$user_id}' ORDER BY date DESC

Tack återigen!
xarph är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-05-26, 16:28 #8
xarphs avatar
xarph xarph är inte uppkopplad
Flitig postare
 
Reg.datum: Feb 2007
Inlägg: 346
xarph xarph är inte uppkopplad
Flitig postare
xarphs avatar
 
Reg.datum: Feb 2007
Inlägg: 346
Jag väcker liv i tråden igen på grund av att jag har "fastnat" (igen).

Jag behöver hjälp med att ordna ihop en SQL-sats som på snabbast sätt kollar antalet prenumeranter till bloggarna och sedan sorterar dom efter flest prenumeranter först.

Typ:

1. Rolles blogg, 25 prenumeranter
2. Kalles blogg, 23 prenumeranter
3. LOLs blogg, 20 prenumeranter
4. Johans sliskiga mysterium, 20 prenumeranter
5. Hitlers porrblogg, 15 prenumeranter
...

etc

Databasdesignen har ni ovan

Tack på förhand.
xarph är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-05-26, 17:52 #9
MMCs avatar
MMC MMC är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jan 2008
Inlägg: 560
MMC MMC är inte uppkopplad
Mycket flitig postare
MMCs avatar
 
Reg.datum: Jan 2008
Inlägg: 560
Jag kanske missförstår vad du vill åstadkomma, men räcker inte COUNT(*) ... GROUP BY? Vad jag kan se från ditt databasschema så borde:

Kod:
SELECT blog_id, COUNT(*) AS num FROM bevakningar GROUP BY blog_id
ge dig informationen du är ute efter (du får så klart plocka in bloggnamn etc. från bloggtabellen)
MMC är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 08:54.

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