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

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
MySQL: To forskellige joins mod samme tabe~
Fra : Kim Bach Petersen


Dato : 16-09-03 15:57

Jeg skal lave en database med skemadata i MySQL og har en tabel med
begivenheder, som løber mellem to tidspunkter (tidfra-tidtil).

Jeg vil gerne lave en liste over valgbare tidspunkter som opslagskolonne,
men løber ind i et problem, når jeg skal hente data, fordi jeg forsøger at
lave to forskellige join's til tabellen med tidspunkter... - intentionen er
altså noget i stil med dette:

SELECT
skemaid,
ttider.tidstring AS tidfra,
ttider.tidstring AS tidtil
FROM
tskema
LEFT JOIN
ttider ON tskema.tidfra=ttider.tidid
LEFT JOIN
ttider ON tskema.tidtil=ttider.tidid

Det virker selvfølgelig ikke, men jeg forestiller mig, at der måske er en
syntaktisk krølle, der gør det muligt at lave to opslag i samme tabel?

Kim



 
 
Peter Brodersen (16-09-2003)
Kommentar
Fra : Peter Brodersen


Dato : 16-09-03 17:07

On Tue, 16 Sep 2003 16:57:10 +0200, "Kim Bach Petersen"
<sunsite@kensho.dk> wrote:

>Det virker selvfølgelig ikke, men jeg forestiller mig, at der måske er en
>syntaktisk krølle, der gør det muligt at lave to opslag i samme tabel?

Ja, lav et alias til den ene. Fx:

LEFT JOIN
ttider ON tskema.tidfra=ttider.tidid
LEFT JOIN
ttider t2 ON tskema.tidtil=ttider.tidid

--
- Peter Brodersen

Ugens sprogtip: PHP (og ikke PhP)

Kim Bach Petersen (16-09-2003)
Kommentar
Fra : Kim Bach Petersen


Dato : 16-09-03 22:04

Peter Brodersen wrote:

>> Det virker selvfølgelig ikke, men jeg forestiller mig, at der måske
>> er en syntaktisk krølle, der gør det muligt at lave to opslag i
>> samme tabel?
>
> Ja, lav et alias til den ene.

Super - tak for det!

Kim



Mark S. Rasmussen (18-09-2003)
Kommentar
Fra : Mark S. Rasmussen


Dato : 18-09-03 11:27

> Ja, lav et alias til den ene. Fx:
>
> LEFT JOIN
> ttider ON tskema.tidfra=ttider.tidid
> LEFT JOIN
> ttider t2 ON tskema.tidtil=ttider.tidid

Umiddelbart ville jeg mene at en normal AND vil være mere egnet:

SELECT
skemaid,
ttider.tidstring AS tidfra,
ttider.tidstring AS tidtil
FROM
tskema
LEFT JOIN
ttider ON tskema.tidfra=ttider.tidid AND tskema.tidtil=ttider.tidid

Mvh Mark
--
www.improve.dk



Jens Gyldenkærne Cla~ (18-09-2003)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 18-09-03 11:42

Mark S. Rasmussen skrev:

> Umiddelbart ville jeg mene at en normal AND vil være mere
> egnet:

Det er ikke tilfældet.


> LEFT JOIN
> ttider ON tskema.tidfra=ttider.tidid AND
> tskema.tidtil=ttider.tidid

Da ttider.tidid = ttider.tidid betyder ovenstående linje i praksis
også: tskema.tidfra = tskema.tidtil. Den begrænsning er ikke
ønsket.
--
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 : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408925
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste