---
title: "Ännu en SQL-fråga"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/182424-ännu-en-sql-fråga"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Gildebrand"
published: "2010-02-13T22:56:08.000Z"
updated: "2010-02-14T15:48:31.000Z"
replies: 7
views: 654
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/182424-ännu-en-sql-fråga"
---

# Ännu en SQL-fråga

## #1 — Gildebrand, 2010-02-13T22:56Z

Hejsan!
Skulle behöva lite hjälp med en SQL-fråga.
Jag har två tabeller, Students & Parents.

Students:

```
[B]FirstName, Lastname, Parent1, Parent2[/B]
Anton, Gildebrand, 15, 82
```

Parents:

```
[B]ID, Firstname, Lastname[/B]
15, Göta, Svensson
82, Helena, Grötblad
```

Nu kan jag enkelt med en SQL-fråga få ut Namnen för Parent1 i tabellen students. Jag kan köra följande SQL-Fråga:

```
Select Students.Firstname, Students.Lastname, Parents.Firstname as PFirstname, Parents.Lastname as PLastname
From Students
Full join Parents
on Student.parent1=parents.id
```

Då får jag ut följande:

```
[B]FirstName, Lastname, PFirstName, PLastname[/B]
Anton, Gildebrand, Göta, Svensson
```

So far so good!
Men nu vill jag få med kolumnen Parent2 också och göra en full join på den så att jag får ut båda föräldrarna vid min fråga. Hur kan jag göra det?

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

## #2 — Peter S, 2010-02-13T23:01Z

```
Select Students.Firstname, Students.Lastname, p1.Firstname as PFirstname1, p1.Lastname as PLastname1, p2.Firstname as PFirstname2, p2.Lastname as PLastname2
From Students
Full join Parents p1
on Student.parent1=p1.id
Full join Parents p2
on Student.parent2=p2.id
```

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

## #3 — Gildebrand, 2010-02-13T23:22Z

Ett steg i rätt riktning :)
Måste dock få bort lite "skit"

Resultatet vid frågan:

```
[B]Firstname, Lastname, PFirstname1, PLastname1, PFirstname2, PLastname2[/B]
Anton, Gildebrand, Göta, Svensson, Helena, GrötBlad
NULL, NULL, Helena, Grötblad, Null, Null
NULL, NULL, NULL, NULL, Göta, Svensson
```

Men jag vill bara ha den översta raden, och inte få med de andra

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

## #4 — Gildebrand, 2010-02-13T23:44Z

Det löste sig :)

select S.FirstName, s.LastName, p1.firstname as P1FN, p1.lastname as P1LN, p2.firstname as p2fn, p2.lastname as p2ln
from Students s
inner join Parents p1
on s.Parent1=p1.ID
inner join Parents p2
on s.Parent2=p2.ID

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

## #5 — Peter S, 2010-02-14T08:30Z

Problemet nu är att du inte får med studenter som saknar en eller två föräldrar. Byt "FULL" mot "LEFT".

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

## #6 — Gildebrand, 2010-02-14T12:43Z

Det funkade bra med Inner Join. Så jag är nöjd.
Jag har en till fråga på lut.

Det är så att jag vill lägga till poster i min tabell "Resultat" utifrån mina två tabeller "Användare" och "Ämne".
Jag gör ett litet exempel på vad jag vill göra

Så här ser tabellen Students ut. Jag tar bara med de relevanta kolumnerna i sammanhanget.

```
[B]ID [/B]
15 
97
```

Såhär ser tabellen Subjects ut:

```
[B]ID[/B] 
78 
36 
25
```

Och nu vill jag skicka in det här i min tabell Resultat. De kolumner som är relevanta i sammanhanget är ID, Användar_ID och Ämnes_ID.
För varje användare ska det skapas en post för varje ämne. Så som här i mitt exempel, så ska det bli sex poster i resultat-tabellen, eftersom 2 användare \* 3 ämnen = 6. ID ska genereras av NEWID(), men jag väljer att i det här exemplet att bara använda en siffra. Blir lite jobbigt för er att läsa om jag har UniqueIdentifier.
Så jag vill ha en fråga som skickar in Subjects och Students i Resultat.

Såhär skulle då resultat se ut:

```
[B]ID, Användar_ID, Ämnes_ID [/B]
1, 15, 78 
2, 15, 36 
3, 15, 25 
4, 97, 78 
5, 97, 36 
6, 97, 25
```

Förstår du hur jag menar?

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

## #7 — Gildebrand, 2010-02-14T15:23Z

Så att resultatet på denna fråga:

select NEWID() as ID, Students.ID as Elev_ID, Subjects.ID as Subject_ID
from Students 
cross join Subjects

Petas in i tabellen resultat.

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

## #8 — Gildebrand, 2010-02-14T15:48Z

Löste sig

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/182424-ännu-en-sql-fråga
