---
title: "online med två tabeller"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/83026-online-med-två-tabeller"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "mozilla"
published: "2003-07-29T21:08:32.000Z"
updated: "2003-07-30T12:20:31.000Z"
replies: 4
views: 181
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/83026-online-med-två-tabeller"
---

# online med två tabeller

## #1 — mozilla, 2003-07-29T21:08Z

Jag behöver lite hjälp, jag har en mySQL databas som är uppbyggd av två tabeller, en *connect* och en *disconnect* tabell. Och jag vill hämta ut alla som är **online**. Dvs. de som är registrerade i connect men **inte** finns med i disconnect med ett datum/klockslag som är högre än vad de har i connect. I båda tabellerna finns *userid* och *eventtime*. Upplägget är kanske inte det bästa men tyvärr inget jag kan ändra på.

Förtydligande av databas:

- userid
- eventtime

- userid
- eventtime

Permalänk: https://www.webforum.nu/p/83026

## #2 — Nexus86, 2003-07-29T21:13Z

```
SELECT c.userid FROM connect c, disconnect d WHERE c.userid = d.userid, c.eventtime < d.eventtime

eller

SELECT c.userid FROM connect c, disconnect d WHERE c.userid = d.userid AND c.eventtime < d.eventtime
```

Hoppas jag. Är inte riktigt säker

Permalänk: https://www.webforum.nu/p/1123407

## #3 — mozilla, 2003-07-29T21:37Z

det fungerade inte riktigt, eller jag fick ut alla inte bara de som är online. Kan tilläggas att det fungerar så här:

När användaren loggar in skapas en post i connect
INSERT INTO connect (userid,eventtime) VALUES (id,now())

Nu är användaren online och när den loggar ut skapas en ny post i disconnect
INSERT INTO disconnect (userid,eventtime) VALUES (id,Now())

Det betyder alltså att de användare som är online **bara** har finns med i connect tabellen, inte i disconnect. Men de kan dock ha varit inloggade tidigare så därför måste jag kontrollera så att användaren  inte finns med i tabellen disconnect eller att tiden(eventtime) är tidigare än när den loggade in i connect.

Permalänk: https://www.webforum.nu/p/1123425

## #4 — aasah, 2003-07-30T11:25Z

> **mozilla skrev:**
>
> ...När användaren loggar in skapas en post i connect
> INSERT INTO connect (userid,eventtime) VALUES (id,now())
> 
> Nu är användaren online och när den loggar ut skapas en ny post i disconnect
> INSERT INTO disconnect (userid,eventtime) VALUES (id,Now())
> 
> Det betyder alltså att de användare som är online **bara** har finns med i connect tabellen, inte i disconnect. Men de kan dock ha varit inloggade tidigare så därför måste jag kontrollera så att användaren  inte finns med i tabellen disconnect eller att tiden(eventtime) är tidigare än när den loggade in i connect.

Nu säger du emot dig själv! :q Om userid 5 loggar in 20030709 kl 10.00, ut 20030709 kl 12.00 och in på nytt 20030723 kl.10.00 så borde enligt dina insertsatser följande finnas (bland mycket annat):

```
I Connect:
5   20030709 10:00
5   20030723 10:00

I Disconnect:
5   20030709 12:00
```

Eller finns det en deletesats som plockar bort dig ur connect-tabellen när du loggar ur?

Permalänk: https://www.webforum.nu/p/1123659

## #5 — LarsG, 2003-07-30T12:20Z

```
select c.user from connect c left join disconnect d
on c.userid = d.userid
group by c.userid
having max(c.eventtime) > max(coalesce(d.eventtime,'1900-01-01 00:00:00'))
```

Permalänk: https://www.webforum.nu/p/1123693

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/83026-online-med-två-tabeller
