---
title: "Den skriver inte ut som jag vill"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/59797-den-skriver-inte-ut-som-jag-vill"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "ampy"
published: "2002-11-20T19:46:16.000Z"
updated: "2002-11-20T21:03:38.000Z"
replies: 9
views: 305
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/59797-den-skriver-inte-ut-som-jag-vill"
---

# Den skriver inte ut som jag vill

## #1 — ampy, 2002-11-20T19:46Z

Har denna sql-sats:

```
	SQL = "SELECT * " & _
	" From forum_topics ft inner join forum_posts fp on ft.id_trad = fp.id_trad" & _
	" left outer join members m on m.id = ft.user_id" & _
	" WHERE ft.rum = '"&rummet1&"' order by ft.senasteinlagg desc, fp.id desc"
```

Den gör inte riktigt som jag vill. När jag skriver ut alla poster med hjälp av denna sql-sats så skriver den ut alla poster som finns i tabellen forum_posts. Men jag vill att den endast jag skriva ut alla poster som finns i forum_topics. 

Fattar inte vad jag har gjort fel i sql-satsen.

Tabellerna ser ut som följande:

**forum_topics**
id_trad 
subject  
user_id  
datum 
rum  
locked 
senasteinlagg  
ampymail
last  
svar

**forum_posts**
id 
id_trad
user_id
message 
datum 

**members**
id 
username

Det jag vill göra är alltså först och främst hämta alla poster från tabellen **forum_topics**. Sen vill jag hämta det senaste inlägget från **forum_posts** där id_trad är lika med id_trad i tabellen **forum_posts**. Sen vil jag ju även veta namnet på user_id och den får jag alltså från tabellen **members**.

Vad har jag gjort för fel på min sql-sats?

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

## #2 — LarsG, 2002-11-20T20:00Z

```
SQL = "SELECT * " & _
	" From forum_topics ft inner join forum_posts fp on ft.id_trad = fp.id_trad" & _
	" left outer join members m on m.id = ft.user_id" & _
	" WHERE ft.rum = '"&rummet1&"' " &_
" and fp.id in (select max(id) from  forum_posts " & _
" where id_trad = fp.id_trad ) " & _
" order by ft.senasteinlagg desc, fp.id desc"
```

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

## #3 — ampy, 2002-11-20T20:06Z

På den får jag detta fel:

```
Microsoft OLE DB Provider for ODBC Drivers fel '80040e09' 
[TCX][MyODBC]You have an error in your SQL syntax near 'select max(id) from forum_posts where id_trad = fp.id_trad ) order by ft.sena' at line 1
```

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

## #4 — LarsG, 2002-11-20T20:15Z

Ah, Mysql och dess begränsningar. Får hitta på något annat.

Vad är senasteinlagg?

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

## #5 — ampy, 2002-11-20T20:18Z

Den innehåller det datum då det gjordes en post i den tråden. Man kan ju hämta det värdet i den andra tabellen (forum_posts) men det tar väl bara en massa tid?

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

## #6 — LarsG, 2002-11-20T20:33Z

```
QL = "SELECT * " & _
	" From forum_topics ft inner join forum_posts fp " & _
" on ft.id_trad = fp.id_trad and fp.datum = ft.senasteinlagg" & _
	" left outer join members m on m.id = ft.user_id" & _
	" WHERE ft.rum = '"&rummet1&"' order by ft.senasteinlagg desc, fp.id desc"
```

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

## #7 — ampy, 2002-11-20T20:49Z

Den satsen fungerar perfekt men jag glömde att lägga till en sak :l

Värdet fp.user_id innehåller ju det id på den användare som skrev inlägget sist i tråden. Även det usernamet vill jag hämta från tabellen members. Går det att fixa eller får jag skapa ett nytt recordset?

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

## #8 — LarsG, 2002-11-20T20:58Z

```
QL = "SELECT ft.*,fp.*,m1.*,m2.username as lastPoster " & _
	" From forum_topics ft inner join forum_posts fp " & _
" on ft.id_trad = fp.id_trad and fp.datum = ft.senasteinlagg" & _
" left outer join members m2 on m2.id = fp.user_ud " & _     
" left outer join members m1 on m1.id = ft.user_id" & _
" WHERE ft.rum = '"&rummet1&"' order by ft.senasteinlagg desc, fp.id desc"
```

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

## #9 — ampy, 2002-11-20T21:01Z

Du är verkligen grym på SQL!  :birp 

Fast kan du förklara vad det är för skillnad på inner join och outer join?

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

## #10 — @nders, 2002-11-20T21:03Z

En outer join ger resultat även om inte joinvillkoret uppfylls, då är alla kolumner från den injoinade tabellen null. I en inner join kommer inte dessa poster med överhuvudtaget.

Fast jag kanske inte fick svara? ;)

Mvh,

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/59797-den-skriver-inte-ut-som-jag-vill
