/
Forside
/
Teknologi
/
Udvikling
/
SQL
/
Nyhedsindlæg
Login
Brugernavn
*
Kodeord
*
Husk mig
Brugerservice
Kom godt i gang
Bliv medlem
Seneste indlæg
Stil et spørgsmål
Skriv et tip
Pointsystemet
Kontakt Kandu.dk
Emnevisning
Kategorier
Alfabetisk
Karriere
Interesser
Teknologi
Reklame
Top 10 brugere
SQL
#
Navn
Point
1
pmbruun
1704
2
fehaar
730
3
Interkril..
701
4
ellebye
510
5
pawel
510
6
rpje
405
7
pete
350
8
gibson
320
9
smorch
260
10
svend_dyhr
250
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 :
177821
Tips :
31980
Nyheder :
719565
Indlæg :
6410978
Brugere :
218912
Månedens bedste
Årets bedste
Sidste års bedste
Copyright © 2000-2026 kandu.dk. Alle rettigheder forbeholdes.