SkarreMedlem sedan apr. 20012 447 inlägg
Min SQL är riktigt rostig så jag undrar förstås om någon kan hjälpa mig att komponera en fråga som hämtar all information om en viss användare (från "users") samt all information om alla avdelningar han ingår i ("departments"). Tabellen som innehåller relationerna heter "deptrelations".
users
---------------------------------
| userid | name |
---------------------------------
| 1 | Skarre |
---------------------------------
departments
---------------------------------
| departmentid | name |
---------------------------------
| 1 | Avdelning 1 |
---------------------------------
| 2 | Avdelning 2 |
---------------------------------
deptrelations
---------------------------------
| userid | departmentid |
---------------------------------
| 1 | 1 |
---------------------------------
| 1 | 2 |
---------------------------------
LarsGMedlem sedan dec. 200012 465 inlägg
select users.*,department.*
from users, departments,deptrelations
where users.userid = deptrelations.userid
and deptrelations.departmentid = departments.departmentid
and users.name = 'Skarre'
SkarreMedlem sedan apr. 20012 447 inlägg
Dig kan man alltid lita på LarsG! :)
SkarreMedlem sedan apr. 20012 447 inlägg
Jag lekte runt lite i Access och den gjorde automagiskt en SQL-fråga utifrån relationerna jag lagt in. Min fråga är om denna åstadkommer samma sak (jag tycker det ser ut så) och i sådana fall, vilken av dessa två frågor är att föredra, om det spelar någon roll.
SELECT personnel.*, departments.*
FROM personnel INNER JOIN (departments INNER JOIN deptrelations ON departments.departmentid = deptrelations.departmentid) ON personnel.userid = deptrelations.userid;
Engine^Medlem sedan dec. 20002 861 inlägg
Du får samma resultat, men det är olika typer av JOINs.
Types of Joins
LarsGMedlem sedan dec. 200012 465 inlägg
Jag skulle nog kalla det samma typ av join till och med.
Inner join syntaxen med mer än två tabeller i Access blir komplett oläslig och perverterad. Om jag skriver ett exempel för access så föredrar jag att ange villkoren i where men däremot om det gäller andra dbms så föredrar jag att använda join-syntax.
select users.*,department.*
from users join deptrelations
on users.userid = deptrelations.userid
join departments
on deptrelations.departmentid = departments.departmentid
where users.name = 'Skarre'
Ovanstående fungerar tyvärr alltså inte i Access/Jet.