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?
Peter SMedlem sedan dec. 20025 483 inlägg 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
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
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
Peter SMedlem sedan dec. 20025 483 inlägg Problemet nu är att du inte får med studenter som saknar en eller två föräldrar. Byt "FULL" mot "LEFT".
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?
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.