roomMedlem sedan mars 2001270 inlägg Hej. Jag är helt lost! Sitter och bygger en community och har lite svårt med att få sorteringen som jag vill ha. Jag har en tabell som heter friends som jag öppnar så här:
Set FriendsData=Server.CreateObject("ADODB.Recordset")
FriendsData.open "SELECT * from friends WHERE (To = " & Request("ProfileID") & " OR From = " & Request("ProfileID") & ") AND Approved = 1 ORDER By " & Request("order") & ";",connect,adOpenStatic,adLockOptimistic
Nu till problemet, jag vill ju kunna sortera på Namn (username) eller Senast Inloggad (last_Date). Grejjen är att dessa fält ligger i medlem databasen (members).
Hur gör jag, behöver kod tack! Förstår att det är någon form av inner join eller liknande som behövs, men som sagt, behöver kod ;)
@ndersMedlem sedan juni 200032 969 inlägg Jag kan fundera på att fundera på det, om du kastar bort allt skräp ur koden och visar den komplette SQL-frågan såsom databasen tolkar den. Annars börjar jag bara grina när jag tittar på din kod. :)
roomMedlem sedan mars 2001270 inlägg ok? jag antar att du menar detta:
SELECT * from friends WHERE (To = 5 OR From = 5) AND Approved = 1 ORDER By From;
ORDER By From; <-- From är ett Tal som motsvarar ett ID från tabellen members, i den tabellen finns ett fält som heter Username och det är enligt det fältet jag vill sortera.
Svårt att förklara exakt hur jag menar, men jag antar att detta går att lösa.
@ndersMedlem sedan juni 200032 969 inlägg
ok? jag antar att du menar detta:
Jo.
- - - - - - -
Det låter märkligt att ha det på det sättet. Varför skickar du inte bara sorteringsfältets namn istället och sorterar direkt?
Om du nu ska ha det som du har det, hade jag gjort en ren select först, och sedan använt värdet från det resultatsetet.
(Sen får du också tänka på att inte ha fält som heter t.ex. "From", det är ju lite smått reserverat som nyckelord i SQL, om man säger så.)
roomMedlem sedan mars 2001270 inlägg Okey, jag är fortfarande lost tror jag. Så här ser mina tabeller ut:
tabell -> members
ID (Räknare)
Username (Text)
Last_Date (Datum/Tid)
+ en del andra fält som inte är relevanta för min fråga
tabell -> friends
ID (Räknare)
To (Tal)
From (Tal)
+ en del andra fält som inte är relevanta för min fråga
Jag vill alltså sortera efter t ex From i tabellen friends. Men sorterar jag enligt exemplet ovan, så sorteras ju min data efter det ID som varje medlem har och det blir ju tokigt eftersom Anders Andersson kanske har ID 75 medans Örjan Öste har 15 och kommer då att sorteras före Anders Andersson.
Skulle vara tacksam för kod för att utföra sorteringen enligt mina önskemål. Vad det gäller reserverade ord så får jag kolla över det och ändra på de ställen jag använt sådana.
mvh
LarsGMedlem sedan dec. 200012 464 inlägg SELECT <kolumner>
from friends inner join members on friends.from = members.id
WHERE 5 in (To,From)
AND Approved = 1
ORDER By members.username
to och from är reserverade ord.
Ange alltid de kolumner du är intresserad av istället för att hämta alla.
roomMedlem sedan mars 2001270 inlägg Tack för det. ska prova genast!
@ndersMedlem sedan juni 200032 969 inlägg Kan du inte visa hur ditt data ser ut, och hur du vill att resultatet ska se ut, för jag fattar ingenting. Om det nu inte är bara en vanlig join du vill åt, då skulle den kunna se ut så här:
SELECT m1.username as ToName, m2.username as FromName, friends.*
from friends
inner join members m1 on friends.to = m1.id
inner join members m2 on friends.from = m2.id
WHERE (To = 5 OR From = 5) AND Approved = 1
ORDER By FromName
Men som sagt, jag är inte alls säker på att jag förstår...
edit: hoppsan, här händer det grejer medans jag gör annat. :)
mvh
roomMedlem sedan mars 2001270 inlägg
LarsG skrev:
SELECT <kolumner>
from friends inner join members on friends.from = members.id
WHERE 5 in (To,From)
AND Approved = 1
ORDER By members.username
to och from är reserverade ord.
Ange alltid de kolumner du är intresserad av istället för att hämta alla.
Nu har jag fixat alla reserverade ord, men det blir fortfarande inte rätt sortering. Min SELECT sorteras fortfarande på ID't och inte på username't
roomMedlem sedan mars 2001270 inlägg bifogar databasen så ni får se hur det ser ut.
@ndersMedlem sedan juni 200032 969 inlägg Och exakt hur ser din SQL-fråga ut nu?
roomMedlem sedan mars 2001270 inlägg SELECT ToMember, FromMember, To_Comment, From_Comment, IRL
from friends inner join members on friends.fromMember = members.id
WHERE 5 in (ToMember,FromMember)
AND Approved = 1
ORDER By members.username
Exakt så där ser det ut nu.
roomMedlem sedan mars 2001270 inlägg ingen med mer ideer? vore tacksamt
LarsGMedlem sedan dec. 200012 464 inlägg Vilken sortering får du och vilken vill du ha?
CompusaMedlem sedan jan. 20023 327 inlägg
LarsG skrev:
Vilken sortering får du och vilken vill du ha?
Nu till problemet, jag vill ju kunna sortera på Namn (username) eller Senast Inloggad (last_Date).
Jag antar att du döpt om kolumn-namnen?
SELECT ToMember, FromMember, To_Comment, From_Comment, IRL, Username, Last_Date
FROM friends
INNER JOIN members ON friends.fromMember = members.id
WHERE 5 in (ToMember,FromMember) AND Approved = 1
ORDER By Username, Last_Date DESC
/Redigerade sorteringen...
CompusaMedlem sedan jan. 20023 327 inlägg Hur går det? Har du fått problemet löst?