---
title: "Urval i flera tabeller."
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/150711-urval-i-flera-tabeller"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "dahlgren"
published: "2006-08-29T21:12:52.000Z"
updated: "2006-08-30T09:05:05.000Z"
replies: 5
views: 427
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/150711-urval-i-flera-tabeller"
---

# Urval i flera tabeller.

## #1 — dahlgren, 2006-08-29T21:12Z

```
      $query_head = "SELECT DATE_FORMAT(a.created, '%Y-%m-%d')AS created, a.headline, c.name, c.id, c.parent_section, a.id as art_id FROM Articles a left join Categories c on a.category_id=c.id WHERE a.category_id <> 39 ORDER BY a.id DESC LIMIT 4";
```

 
Frågan ovan fungerar fint men jag skulle vilja ändra urvalet så att det inkluderar tidne som finns i en tabell history också när den plockar fram de 4 senaste artiklarna. Kopplingen mellan history och article är att history.content_id är samma som Article.id. Hur löser jag det? Då blir det väl 3 tabeller som måste vara med i FROM? Har aldrig gjort något liknande, tacksam för hjälp.

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

## #2 — emission, 2006-08-29T21:44Z

Jag är inte riktigt med på vad du ville ha med från history, men för att inner-joina den kan du skriva så här 

```
SELECT DATE_FORMAT(a.created, '%Y-%m-%d') AS created, a.headline, c.name, c.id, c.parent_section, a.id as art_id FROM Articles a[b], history h[/b] 
left join Categories c on a.category_id=c.id
WHERE [b]a.id=h.content_id AND [/b]a.category_id <> 39 ORDER BY a.id DESC LIMIT 4
```

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

## #3 — dahlgren, 2006-08-30T06:40Z

Just nu kollar ju frågan efter de 4 högsta id numrena för att få fram den senaste. Det villkoret kommer inte fungera eftersom jag vill ha de senaste artiklarna baserat på datumen som finns i history.time och Articles.created.

emmisions förslag klagar på "Unknown column 'a.category_id' in 'on clause'"

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

## #4 — dahlgren, 2006-08-30T07:23Z

```
SELECT DISTINCT DATE_FORMAT( a.created, '%Y-%m-%d' ) AS created, a.headline, c.name, c.id, c.parent_section, a.id AS art_id, h.time AS time
FROM Articles a, History h
LEFT JOIN Categories c ON a.category_id = c.id
WHERE a.id = h.content_id
AND a.category_id <>39
ORDER BY created, time DESC
LIMIT 4
```

 

Nu har jag kommit lite längre men får inte riktigt till det. Antar att det är ORDER BY som jag har skrivit fel. Sen vill jag också att det bara ska förekomma en av varje a.id.

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

## #5 — @nders, 2006-08-30T07:25Z

För att få till sorteringen borde det inte vara värre än att lägga till DESC efter *created* också, annars sorteras det ascending på created, och descending på time.

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

## #6 — dahlgren, 2006-08-30T09:05Z

Där ser man man lär sig något nytt varje dag. Visste inte att man behövde skriva DESC efter varje. Nu fungerar sorteringen bättre. Problemet med att jag får med alla ändringar kvarstår, jag vill att förekomsten av a.id ska vara unika bland de 4 jag får fram.

Edit: Urvalet blir inte heller helt rätt. Den plockar inte riktigt fram rätt urval utan ajg får bara med de senaste ändringarna i h.time på det senaste datumet i a.created. Se bifogad fil.

Bilagor:

- [sql.JPG](https://www.webforum.nu/a/11917.jpg)

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/150711-urval-i-flera-tabeller
