---
title: "namn LEFT JOIN email"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/171601-namn-left-join-email"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Mr T"
published: "2008-05-18T13:29:49.000Z"
updated: "2008-05-18T16:58:42.000Z"
replies: 4
views: 439
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/171601-namn-left-join-email"
---

# namn LEFT JOIN email

## #1 — Mr T, 2008-05-18T13:29Z

Har 2 tabeller som jag vill söka i och som är "sammansatta".

**namn**
id
fornamn
efternamn

**email**
id
namn_id
email

I **namn** finns följande poster

```
+----+---------+-----------+
| id | fornamn | efternamn |
+----+---------+-----------+
| 01 |  Albert |  Einstein |
| 02 | Charles |    Darwin |
| 03 |   Marie |     Curie |
+----+---------+-----------+
```

I **email** finn följande poster

```
+----+---------+---------+
| id | namn_id |  email  |
+----+---------+---------+
| 01 |      01 |   E@m.c |
| 02 |      03 |  M@ri.e |
| 03 |      03 | C@uri.c |
+----+---------+---------+
```

**SQL-Frågan:**
För att få fram för- och efter-namn i sökresultatet.

```
SELECT namn.fornamn, namn.efternamn FROM namn
```

För att bygga ihop dessa 2 använder jag LEFT JOIN för att få med ALLA namn oavsett om någon missar en e-mail adress (Det är väll rätt tänkt?)

```
LEFT JOIN email ON email.namn_id=namn.id
```

Själva frågan ställer jag som såhär

```
WHERE email.email NOT LIKE '%.c%'
```

och för att inte få dubbla namn i resultatet

```
GROUP BY namn.id
```

och sortera på efternamn och sedan förnamn

```
ORDER BY efternamn, fornamn
```

Nu anser jag att Charles Darwin skulle dyka upp som resultat, men eftersom hans email är NULL (han saknar ju e-mail) så kommer inte hans resulet heller fram.
Vad gör jag för fel när jag kombinerar tabellerna ?

Tacksam hjälp.

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

## #2 — LarsG, 2008-05-18T14:34Z

```
select fornamn, 
         efternamn 
   from namn
  where not exists
      (select *
          from email
         where email NOT LIKE '%.c%'
             and email.namn_id=namn.id)
```

Vill du ha med marie i resultatet?

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

## #3 — Mr T, 2008-05-18T15:47Z

marie ska inte vara med efter som EN av hennse e-mail slutar på just ".c".

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

## #4 — LarsG, 2008-05-18T16:20Z

```
select fornamn, 
         efternamn 
   from namn
  where id not in
      (select namn_id
          from email
         where email LIKE '%.c%')
```

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

## #5 — Mr T, 2008-05-18T16:58Z

Öööööö......

Får samma resultat från båda 2. Dom som det inte har någon e-mail kommer med i båda resultaten ju. Precis som det ska vara.

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/171601-namn-left-join-email
