/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
SQL spørgsmål...
Fra : Magnus


Dato : 13-05-03 15:07

SQL = "SELECT id, kampdato, id, mal FROM Tabel1, Tabel2, Tabel3 WHERE id=id

Skal alle navne på felter i de tabeller man vil trække info fra være
forskellige eller kan man definere (som ovenover her) hvilkent id felt der
er fra hvilken tabel...?


/Magnus



 
 
Jesper Stocholm (13-05-2003)
Kommentar
Fra : Jesper Stocholm


Dato : 13-05-03 15:12

Magnus wrote :

> SQL = "SELECT id, kampdato, id, mal FROM Tabel1, Tabel2, Tabel3 WHERE
> id=id
>
> Skal alle navne på felter i de tabeller man vil trække info fra være
> forskellige eller kan man definere (som ovenover her) hvilkent id felt
> der er fra hvilken tabel...?

Jeg ville foretrække at gøre det således:

SELECT
   t1.id,t2.kampdato,t3.mal
FROM
   Tabel1 t1,Tabel2 t2,Tabel3 t3
WHERE
   t1.id = t2.id AND t2.id = t3.id



--
Jesper Stocholm
http://stocholm.dk
http://asp.stocholm.dk
Svar til gruppen og ikke til mig privat pr. email :|

Jens Gyldenkærne Cla~ (13-05-2003)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 13-05-03 16:55

Magnus skrev:

> SQL = "SELECT id, kampdato, id, mal FROM Tabel1, Tabel2,
> Tabel3 WHERE id=id

> Skal alle navne på felter i de tabeller man vil trække info
> fra være forskellige

Alle feltnavne i en sql-forespørgsel skal være unikke - men det
betyder ikke at man ikke har mulighed for at trække felter med
enslydende navne ud fra flere tabeller. Man skal blot benytte alias
eller kvalificerede navne (i nogle tilfælde begge dele)

> eller kan man definere (som ovenover her)
> hvilkent id felt der er fra hvilken tabel...?

Din sql-sætning specificerer netop ikke hvor de forskellige id-
felter kommer fra.

Du kan i stedet skrive:

SELECT t1.id, kampdato, mal
FROM Tabel1 t1 INNER JOIN Tabel2 t2
   ON t1.id = t2.id
INNER JOIN Tabel3 t3
   ON t1.id = t3.id

Jespers udgave - hvor joinkriterierne skrives som en WHERE-klausul
- kan også bruges. Jeg foretrækker dog at man holder join-kriterier
for sig.

I eksemplet herover er der ikke grund til at trække id-feltet ud
fra mere end én tabel - join-udtrykket sikrer jo at værdien vil
være den samme i alle tre tabeller. Men hvis man har brug for at
trække flere felter ud med samme navn kan man benytte alias:

SELECT t1.id AS t1ID, t2.id AS t2ID, t3.id AS t3ID
FROM Tabel1 t1 INNER JOIN Tabel2 t2
   ON t1.id = t2.id
INNER JOIN Tabel3 t3
   ON t1.id = t3.id
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408935
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste