webForumDet fria alternativet

MySQL räkningsfel???

4 svar · 355 visningar · startad av klovstedt

klovstedtMedlem sedan nov. 20055 inlägg
#1

Följande pseudo skrivs in:

SELECT *
FROM wlanlog AS table1, wlanlog AS table2
WHERE table1.timestamp BETWEEN begin AND end
AND table1.timestamp = ( table2.timestamp +300 ) AND table1.ap != table2.ap AND table1.user = table2.user

Vilket resulterar i att de olikheter som man får fram läggs bredvid varandra, inte radvis alltså. Sker någon mystisk JOIN då? Eller är det jag som e puckad? :)

Jag vill ha radvis kanske ska tilläggas.

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Jag förstår inte vad du menar.

Exemplifiera med datainnehåll och förväntat resultat.

klovstedtMedlem sedan nov. 20055 inlägg
#3

mer förklarat...

wlanlog
----------
timestamp user AP
1130900100 0000000008E3 000B85181E20
1130900400 0000000008E3 000B851AE500
1130900701 0000000008E3 000B85181E20

Kör:
SELECT count( * )
FROM wlanlog AS table1, wlanlog AS table2
WHERE table1.timestamp BETWEEN 1130900100 AND 1130900701
AND table2.timestamp = ( table1.timestamp +300 )
AND table1.ap != table2.ap
AND table1.user = table2.user

Resulterar i:
count( * )
1

Vill ha (eftersom användaren roamar 2 ggr):
count( * )
2

LarsGMedlem sedan dec. 200012 464 inlägg
#4

Tja, det gjorde väl inte saken klarare. De rader som du visar i ditt resultat finns ju inte med i det första utdraget.

select timestamp,ap,user
  from wanlog as q1
 where exists 
   (select *
      from wanlog as q2
     where q1.timestamp + 300 = q2.timestamp
       and q1.user = q2.user
       and q1.ap <> q2.ap)
union
select timestamp,ap,user
  from wanlog as q1
 where exists 
   (select *
      from wanlog as q2
     where q1.timestamp - 300 = q2.timestamp
       and q1.user = q2.user
       and q1.ap <> q2.ap)
klovstedtMedlem sedan nov. 20055 inlägg
#5

ändringar

har nu ändrat i mitt föregående inlägg... var kanske lite korkat av mig att inte göra det så klart jag kunde :) men nu ska det framgå ganska så tydligt iaf... var lite svårt att exemplifiera bra när vi jobbar med en ganska stor databas (dessutom när man inte har total kontroll på MySQL såsom du)

tackar för all hjälp btw...

125 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)