---
title: "Hämta från två tabeller!"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/170588-hämta-från-två-tabeller"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "streetrobban"
published: "2008-04-07T14:19:31.000Z"
updated: "2008-04-07T19:08:20.000Z"
replies: 12
views: 741
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/170588-hämta-från-två-tabeller"
---

# Hämta från två tabeller!

## #1 — streetrobban, 2008-04-07T14:19Z

Hejsan,

Min kod fungerar inte riktigt. Det finns totalt tre svar på inlägget som gjorts. Men bara två av dom visas. Om jag väljer RIGHT JOIN istället för LEFT JOIN så verkar den förstå att det finns tre svar, men hämtar inte uppgifterna från re (ForumReplys). Men den skriver ut det tredje svaret ändå.

```php
// Visa inlägget
$get2 = mysql_query("SELECT re.*, us.Username AS Username, us.ID AS UserID, us.Picture FROM Users us
LEFT JOIN ForumReplys AS re ON re.UserID = us.ID
WHERE re.ThreadID = '$ThreadID'
ORDER BY DateAdded DESC, TimeAdded DESC");
while($row = mysql_fetch_array($get2)) 
{
$ID = $row['ID'];
$TimeAdded = $row['TimeAdded'];
$DateAdded = $row['DateAdded'];
$Reply = $row['Reply'];
$CategoryID = $row['CategoryID'];
$Picture = $row['Picture'];

$Username = $row['Username'];
$UserID = $row['UserID'];

echo "<!-- ##### TABLE FORUM ##### -->";
echo "<table border=\"0\" style=\"width: 459; background-color: #e7e7e7\" cellspacing=\"0\" cellpadding=\"0\" class=\"forumThread\">";
echo "<tr>";
echo "<td style=\"width: 40; height: 35; background-color: #f0f0c8\">";
echo "<img src=\"images/forum_svar.gif\">";
echo "</td>";
echo "<td style=\"width: 45; height: 35; background-color: #f0f0c8\">";
echo "<img src=\"images/users/$Picture\" width=\"35\" height=\"35\">";
echo "</td>";						
echo "<td style=\"width: 274; height: 35; background-color: #f0f0c8\">";
echo "<b>$Subject</b><br/>";
echo "av $Username";
echo "</td>";
echo "<td style=\"width: 100; height: 35; background-color: #f0f0c8\" align=\"center\">";
echo "$DateAdded $TimeAdded";
echo "</td>";
echo "</tr>";
echo "<tr>";
echo "<td style=\"width: 459; padding: 9; background-image:url(images/bg_forum.gif)\" colspan=\"4\">";
echo "".nl2br($Reply)."";
echo "</td>";
echo "</tr>";
echo "</table><br/><br/>";
echo "<!-- ##### END TABLE FORUM ##### -->";
}
```

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

## #2 — LarsG, 2008-04-07T14:27Z

```
SELECT re.*, 
           us.Username AS Username, 
           us.ID AS UserID, 
           us.Picture 
  FROM Users us
  LEFT JOIN ForumReplys AS re ON re.UserID = us.ID
    and re.ThreadID = $ThreadID
  ORDER BY DateAdded DESC, 
            TimeAdded DESC
```

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

## #3 — streetrobban, 2008-04-07T14:35Z

Wow tack för ditt snabba svar :)

Nu funkar det nästan. $TimeAdded, $DateAdded och $Reply skrivs dock inte ut. Men användaren (re.Username, re.Picture) hittas.

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

## #4 — LarsG, 2008-04-07T15:00Z

Det var för snabbt. Kan du ge exempel på datainnehåll i dina tabeller och förväntat resultat?

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

## #5 — streetrobban, 2008-04-07T15:13Z

**ForumReplys:**
TimeAdded (Text)
DateAdded (Date)
UserID (Int(255))
CategoryID (Int(255))
ThreadID (Int(255))
Reply (Text)

**Users:**
ID (Int(255))
Username (Text)
Picture (Text)

Jag vill helt enkelt skriva ut svar på en tråd i ett forum. Användarnamn (Username), ID (ID) och bild (Picture) ska hämtas från Users. Och kopplas ihop med svaret (Reply), tid (TimeAdded) och datum (DateAdded) från ForumReplys.

Det finns tre svar på en tråd, de två första skrivs ut korrekt. Men den tredje skrivs bara ut med bild och användarnamn. Alltså saknas svaret, tid och datum på när svaret skrevs (från ForumReplys).

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

## #6 — streetrobban, 2008-04-07T15:25Z

Det verkar som den hämtar information från antingen ForumReplys tabellen eller från Users tabellen beroende på om jag skriver LEFT JOIN eller RIGHT JOIN. Vad ska man skriva för att information ska hämtas från båda tabellerna? :)

RIGHT JOIN så hämtar den från ForumReplys.
LEFT JOIN så hämtar den från Users.

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

## #7 — Peter S, 2008-04-07T15:28Z

```
SELECT re.*, 
           us.Username AS Username, 
           us.ID AS UserID, 
           us.Picture 
FROM
  ForumReplys AS re INNER JOIN Users us ON re.UserID = us.ID
    and re.ThreadID = $ThreadID
  ORDER BY DateAdded DESC, 
            TimeAdded DESC
```

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

## #8 — streetrobban, 2008-04-07T18:46Z

Hmm, när jag kör INNER JOIN så visas inga svar alls.

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

## #9 — streetrobban, 2008-04-07T18:51Z

Med RIGHT JOIN så visas två av tre med allt från Users och ForumReplys. Den tredje visas bara med info från Users, inte ForumReplys.

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

## #10 — Peter S, 2008-04-07T19:01Z

Finns det ForumReplies som inte har några användare? Då

```
SELECT re.*, 
           us.Username AS Username, 
           us.ID AS UserID, 
           us.Picture 
FROM
  ForumReplys AS re LEFT JOIN Users us ON re.UserID = us.ID
    WHERE re.ThreadID = $ThreadID
  ORDER BY DateAdded DESC, 
            TimeAdded DESC
```

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

## #11 — streetrobban, 2008-04-07T19:03Z

Nej alla ForumReplys är har ett nummer i UserID som är kopplat till en användares ID som finns.

Din kod visar alla tre inlägg, det sista utan uppgifter från Users dock...

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

## #12 — Peter S, 2008-04-07T19:07Z

Då bör INNER JOIN-varianten fungera. Kanske finns det ingen ForumReply som uppfyller re.ThreadID = $ThreadID?

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

## #13 — streetrobban, 2008-04-07T19:08Z

Du hade rätt Peter S. Jag var helt säker på att UserID mostsvarade ID i Users. Men det var en användare som hade fel ID :)

Tack för hjälpen båda två! Jag vet inte vilken tråd jag ska acceptera som svar :)

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/170588-hämta-från-två-tabeller
