nillMedlem sedan okt. 2001387 inlägg Har fått viss insikt i SQL men inför denna prövning står det still i huvudet.
Jag har en tabell (comments) som har columner som userID, datum och tid.
jag vill ur antalet "nya" comments där userID = Session("userID"). Nya ska fås ut av att jämföra datum och tid från comments med tabellen users och där senasttid och senastdatum.
Såhär såg min kod ut innan jag insåg att det jag börjat på inte skulle fungera:
VarDammit = "SELECT userID.comments FROM comments LEFT JOIN users ON ID = '" & Session("userID") & "' WHERE userID.comments = '" & Session("userID") & "' AND ID.users = "
RecSet.Open Vaammit, Connect, adOpenStatic, adLockOptimistic
NyaKom = RecSet.RecordCount
RecSet.Close
LarsGMedlem sedan dec. 200012 464 inlägg sql = "select * from users left outer join comments on (id = comments.userid and (comments.datum > users.datum or (comments.datum = users.datum and comments.time > users.time))) where users.id = " & session("userid")
Det är lite oklart från ditt inlägg vilka kolumner som finns i vilken tabell.
------------------
essentitia preter non sans multiplicandum
nillMedlem sedan okt. 2001387 inlägg Har fått det att fungera någorlunda med lite pill. Det som inte fungerar att om där inte är några nya så blir det ändå "1 Ny kommentar".
om där däremot är 2 nya så blir det "två nya kommentarer" (så jag kan inte bara skriva - 1)
VarDammit = "SELECT users.ID, users.senasttid, users.senastdatum FROM users LEFT OUTER JOIN comments ON (users.ID = comments.userID AND (comments.datum < users.senastdatum or (comments.datum = users.senastdatum and comments.tid > users.senasttid))) WHERE users.ID = " & session("userid")
RecSet.Open VarDammit, Connect, adOpenStatic, adLockOptimistic
Dim NyaKom
NyaKom = RecSet.RecordCount
RecSet.Close
LarsGMedlem sedan dec. 200012 464 inlägg Om du bara vill ha antalet kommentarer så är det effektivare att göra
VarDammit = "SELECT count(*) as antal FROM users inner JOIN comments ON (users.ID = comments.userID AND (comments.datum < users.senastdatum or (comments.datum = users.senastdatum and comments.tid > users.senasttid))) WHERE users.ID = " & session("userid")
set recset = connect.execute(VarDammit)
NyaKom = recset("antal")
recset.close
------------------
essentitia preter non sans multiplicandum