nu har jag lite problem. allt fungerar som det ska ända tills jag villa
loopa från tabellen ForumLista då får jag fel.
fältet är rätt angivet om jag inte loopar men när jag loopar hittar den
ej fältet längre.. why?
nu vill jag då loopa fram från den andra tabellen men får inte..
hur ska det se ut? har provet med: 'Do Until objRS("ForumLista").Eof'
men ingen av mina försöka har lyckats... den säger att den inte hittar fältet vilket
garanterat finns då jag kan hämta enstaka men ej loopa med RecordSet.
Vad är objRS? Ligger inte problemet i koden för utskrift från ditt applikationsprogram då? Vad händer om du helt enkelt skriver ut din resultattabell, blir det inte rätt då?
Vad innehåller tabellerna? Du måste nog köra två SQL-frågor. Du kommer att få en herrans massa poster eftersom SQL-frågan kommer returnera alla olika unika kombinationer.
Du får nog tänka om.
(Det verkar inte vara en post du vill hämta, utan ett fält. Ställ gärna frågan direkt i Access-programmet, så ser du vilket härke till resultat du får tillbaka.)
Jav vill loopa från en tabell men hämta enbart en post från den andra tabellen.....
På vilket sätt är den ensamma posten relaterad till den tabell du loopar? Och exakt vad är det egentligen som loopar? objRS är ingenting som ingår i SQL, väl? Så vilket programspråk/script använder du för att prata med databasen? Jag kan inte avgöra det på de rader du postat här.
SQL för att snacka med databasen.. objRS (recordset) i ASP för att visa informationen för användaren...
databaserna är ej relaterade i detta fallet.. vad jag undrade vad om man på något sätt kunde skriva ut specifik post från en tabell och loopa ett fält från en annan tabell??
tydligen går det ej då...
har då en annan fråga....
strSQL = "Select UserInfo.*, Max(ForumLista.ForumID) As ForumID From UserInfo, ForumLista "&_
"Where UserInfo.UserID ="& qID
fel:
Du försökte köra en fråga med en mängdfunktion som inte innehöll det angivna uttrycket 'UserId'.
förstår felet, men finns det inget sätt jag kan göra på så att jag
slipper ha två SQL-satser??
det enda jag vill ha från tabell2 dvs. ForumLista är hur många
ID det finns.. har också provat med Count..
SQL för att snacka med databasen.. objRS (recordset) i ASP för att visa informationen för användaren...
strSQL = "Select UserInfo.*, Max(ForumLista.ForumID) As ForumID
From UserInfo, ForumLista "&_
"Where UserInfo.UserID ="& qID
...det enda jag vill ha från tabell2 dvs. ForumLista är hur många
ID det finns.. har också provat med Count..
Första frågan: ASP förklarar saken, jag vet inget om ASP.
Andra frågan:
Det du gör nu är att gå en oerhörd omväg. Först parar du ihop all info för varje rad i UserInfo med varje rad i ForumId. Om du har m medlemmar som matchar userID och f forum hämtar du alltså infon från m*f rader. Varför? Jo för att få reda på max forumID vilket kräver genomgång av endast f poster och utskrift av alla medlemmar vilket är en genomgång av m poster. Egentlig tidsåtgång m + f << m*f . Använd två frågor i stället.
strSQL = "Select UserInfo.*, ForumLista.ForumID As ForumID
From UserInfo, ForumLista "&_
"Where UserInfo.UserID ="& qID &" Order By ForumLista.ForumId Desc"
jag trodde att den hämtade alla fälten i tabellen UserId där qID stämde.
och att den hämtar allt från fältet ForumId från tabellen ForumLista och sorterar den efter högsta värdet...
kan du förklara en gång till utifrån den koden jag visade nu vad som är onödigt med koden???
jag trodde att den hämtade alla fälten i tabellen UserId där qID stämde.
Detta är riktigt, jag skrev fel ovan ska omedelbart ändra efter detta svar.
Poseidon skrev:
löste det nu och koden ser ut såhär...
strSQL = "Select UserInfo.*, ForumLista.ForumID As ForumID
From UserInfo, ForumLista "&_
"Where UserInfo.UserID ="& qID &"
Order By ForumLista.ForumId Desc"
...och att den hämtar allt från fältet ForumId från tabellen ForumLista och sorterar den efter högsta värdet... kan du förklara en gång till utifrån den koden jag visade nu vad som är onödigt med koden???
Om UserInfo.userID är unikt så kommer ditt resultat inte att generera fler rader eftersom m*f = 1*f = f. Om det inte är unikt så får du ut samma info om och om igen i olika konstellationer mot foruminfon. Din ändrade fråga tar inte ut maxvärdet på forumID, den skriver ut alla ForumID. Låt oss anta att userID är unikt. Exempel: UserInfo
userID | namn | epost
1 | Bo Berg | bo@telia.se
2| Ia Nord | ia@bo.se
ForumLista
ForumID | namn | senaste postare | antal inlägg | datum för senaste inlägg
1 | Film | 1 | 20030219
2 | TV | 1 | 20030319
3 | Såpor | 1 | 20030419
4 | Teater | 2 | 20030501
Ia Nord har inte postat någon annanstans än i Teaterforumet. Det userId du får in är 2, dvs Ias. Den info din sats skriver ut är följande:
2| Ia Nord | ia@bo.se | 1 | Film | 1 | 20030219
2| Ia Nord | ia@bo.se | 2 | TV | 1 | 20030319
2| Ia Nord | ia@bo.se | 3 | Såpor | 1 | 20030419
2| Ia Nord | ia@bo.se | 4 | Teater | 2 | 20030501
eftersom det inte finns någon koppling mellan UserInfo och ForumLista.
Då kan man fråga sig två saker: Dels varför du vill ha ut Ias info fyra gånger när det räcker med en? Dels varför det är intressant att koppla ihop Ias info med de tre forum som hon inte har postat i?
så det finns inget sätt där jag kan köra en SQL-sats men slippa hämta den överflödiga informationen??
hur mycket mer kräver det av servern?? när det bara rör sig om
4 ForumId kan det väl inte ha någon större betydelse??
Nej.
Hur många forumID det rör sig om beror ju på hur många forum DU har. I mitt exempel var det 4, du kanske har > 10. På webForum skulle det bli rätt många... Förmodligen har det ingen större betydelse, men din fråga blir ologisk och det blir svårt för någon annan att fatta varför du gör som du gör... VARFÖR slå ihop dem? Frågorna har ju inget med varann att göra?