/
Forside
/
Teknologi
/
Udvikling
/
SQL
/
Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn
*
Kodeord
*
Husk mig
Brugerservice
Kom godt i gang
Bliv medlem
Seneste indlæg
Find en bruger
Stil et spørgsmål
Skriv et tip
Fortæl en ven
Pointsystemet
Kontakt Kandu.dk
Emnevisning
Kategorier
Alfabetisk
Karriere
Interesser
Teknologi
Reklame
Top 10 brugere
SQL
#
Navn
Point
1
pmbruun
1704
2
niller
962
3
fehaar
730
4
Interkril..
701
5
ellebye
510
6
pawel
510
7
rpje
405
8
pete
350
9
gibson
320
10
smorch
260
Join gennem to tabeller
Fra :
Thomas Lindgaard
Dato :
22-11-03 02:18
Hejsa
Jeg har et setup ala følgende:
tabel person {
id int
navn text
}
tabel stilling {
id int
betegnelse text
ekstra bool
}
tabel person_stilling {
person_id int
stilling_id int
}
En person har altid en stilling (hvor ekstra=false) og nogle enkelte har
flere stillinger (hvor alle stillinger pånær een har ekstra=true).
Nu vil jeg gerne kunne finde navn og ikke-ekstra-stilling for personen med
id 42. Så vidt jeg kan se er jeg nødt til at køre to SQL-forespørgsler:
1) SELECT navn
FROM person
WHERE id=42
2) SELECT betegnelse
FROM stilling INNER JOIN person_stilling
WHERE id=stilling_id AND person_id=42 AND ekstra=false
Er der en nemmere måde at finde en persons stilling på? Eller er det min
tabel-struktur der ikke er god nok? (Jeg bruger MySQL så jeg kan hverken
bruge sub-selects eller views...)
Mvh.
/Thomas
Jimmy (
22-11-2003
)
Kommentar
Fra :
Jimmy
Dato :
22-11-03 09:28
"Thomas Lindgaard" <thomas@it-snedkeren.BLACK_HOLE.dk> wrote in message
news:pan.2003.11.22.01.17.32.308571@it-snedkeren.BLACK_HOLE.dk...
> Hejsa
>
> Jeg har et setup ala følgende:
>
> tabel person {
> id int
> navn text
> }
>
> tabel stilling {
> id int
> betegnelse text
> ekstra bool
> }
>
> tabel person_stilling {
> person_id int
> stilling_id int
> }
>
> En person har altid en stilling (hvor ekstra=false) og nogle enkelte har
> flere stillinger (hvor alle stillinger pånær een har ekstra=true).
Så din "ekstra" denoterer altså om stillingstypen er en
"primær"/"selvstændig" stilling?
> Nu vil jeg gerne kunne finde navn og ikke-ekstra-stilling for personen med
> id 42. Så vidt jeg kan se er jeg nødt til at køre to SQL-forespørgsler:
Det tror jeg bestemt ikke.
SELECT navn, betegnelse
FROM person
LEFT JOIN person_stilling ON (person.ID =
person_stilling.person_id)
LEFT JOIN stilling ON (person_stilling.stilling_ID = stilling.ID)
WHERE person.id=42 AND ekstra = false
Mvh
Jimmy
Thomas Lindgaard (
24-11-2003
)
Kommentar
Fra :
Thomas Lindgaard
Dato :
24-11-03 15:01
On Sat, 22 Nov 2003 09:28:28 +0100, Jimmy wrote:
[snip]
>> En person har altid en stilling (hvor ekstra=false) og nogle enkelte har
>> flere stillinger (hvor alle stillinger pånær een har ekstra=true).
>
> Så din "ekstra" denoterer altså om stillingstypen er en
> "primær"/"selvstændig" stilling?
Jeps.
>> Nu vil jeg gerne kunne finde navn og ikke-ekstra-stilling for personen med
>> id 42. Så vidt jeg kan se er jeg nødt til at køre to SQL-forespørgsler:
>
> Det tror jeg bestemt ikke.
>
>
> SELECT navn, betegnelse
> FROM person
> LEFT JOIN person_stilling ON (person.ID =
> person_stilling.person_id)
> LEFT JOIN stilling ON (person_stilling.stilling_ID = stilling.ID)
> WHERE person.id=42 AND ekstra = false
Jamen hvor er det smukt - jeg takker og nejer pænt.
Mvh.
/Thomas - der nok skulle overveje at genoptage læsningen i SQL-bogen
Søg
Alle emner
Teknologi
Udvikling
SQL
Indstillinger
Spørgsmål
Tips
Usenet
Reklame
Statistik
Spørgsmål :
177558
Tips :
31968
Nyheder :
719565
Indlæg :
6408925
Brugere :
218888
Månedens bedste
Årets bedste
Sidste års bedste
Copyright © 2000-2024 kandu.dk. Alle rettigheder forbeholdes.