---
title: "Behöver lite sql-hjälp!"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/169379-behöver-lite-sql-hjälp"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "krutov"
published: "2008-02-26T20:43:54.000Z"
updated: "2008-02-28T07:49:05.000Z"
replies: 9
views: 590
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/169379-behöver-lite-sql-hjälp"
---

# Behöver lite sql-hjälp!

## #1 — krutov, 2008-02-26T20:43Z

Hej! Nu har jag kört fast igen. Men det börjar lossna ganska rejält!

FLYGRESA(FLYGPLANS_ID,FRANFLYGPLATS,TILLFLYGPLATS,AVGÅNGSTID,ANKOMSTGSTID)

data:
plan_1,arlanda,chicago,16:15,20:00
plan_2,arlanda,köpenhamn,15:00,16:00
plan_2,köpenhamn,chicago,16:20,19:00
plan_3,bukarest,kairo,17:20,21:10

Jag vill lista vilka plan som går från arlanda till chicago. 
Det enda jag vill ha är planID och ankomst och avgångstid. 

svaret ska se ut så här:
plan_1\|16:15\|20:00
plan_2\|15:00\|19:00

Någon som har nåt tips på en sql? Som är enkel att förstå för en nybörjare... :)
Som vanligt så är jag grymt tacksam om jag får hjälp! :)

Permalänk: https://www.webforum.nu/p/169379

## #2 — K@llen, 2008-02-26T20:52Z

```
$sql = "select FLYGPLANS_ID, ANKOMSTGSTID, AVGÅNGSTID 
from FLYGRESA 
where FRANFLYGPLATS = 'arlanda' and TILLFLYGPLATS = 'chicago'";
```

Permalänk: https://www.webforum.nu/p/2085138

## #3 — krutov, 2008-02-26T20:58Z

tack för ditt snabba svar! :)
Men om du ser plan_2. Det gör en mellanlandning i köpenhamn... ;) Och fortsätter till chicago. 
Se det önskade resultatet.

Permalänk: https://www.webforum.nu/p/2085139

## #4 — K@llen, 2008-02-26T21:05Z

Då är din tabellstruktur knas. Med den strukturen kan du ju inte hålla koll på både frånflygplats, mellanlandningsplats och tillfygplats. Lite normalisering hade varit på sin plats. ;)

Eller finns det fler "hemliga" tabeller?

Permalänk: https://www.webforum.nu/p/2085140

## #5 — Lasp, 2008-02-26T21:14Z

Normalisering och sortering av nycklar och tider var något jag tänkte på redan vid förra frågan.
Det blir tuffare och tuffare! För det är väl en skoluppgift du håller på med krutov?

Permalänk: https://www.webforum.nu/p/2085141

## #6 — krutov, 2008-02-26T21:20Z

ja, den är mer än knas!  Nu är det så att det är inte min tabellstruktur. 
Det är en hemuppgift.
Tro mig, när LarsG kommer så har han en lösning! :D

Permalänk: https://www.webforum.nu/p/2085145

## #7 — krutov, 2008-02-26T21:25Z

> **Lasp skrev:**
>
> Normalisering och sortering av nycklar och tider var något jag tänkte på redan vid förra frågan.
> Det blir tuffare och tuffare! För det är väl en skoluppgift du håller på med krutov?

japp, det här var den näst sista sql:en på SQL-delen av min studier.
Sista frågan fixade jag efter ett par timmar..   :birp 

men den här går jag bet på, men när man får se lösningen så får man ju en sån där härliga "aha-upplevelse".
Det gäller att ta till sig hjälpen man får här! Den har varit grym hittills.

Permalänk: https://www.webforum.nu/p/2085146

## #8 — krutov, 2008-02-27T20:45Z

nu har jag lyckats skriva en sql som "kanske" fungerar. Jag får iaf resultatet som jag vill ha. 
snälla, säg att jag tänkt rätt?  
som vanligt....  jättetacksam för hjälp!  ;)

```
select FLYGPLANS_ID,AVGÅNGSTID,
(select ANKOMSTGSTID from FLYGRESA
where x.FLYGPLANS_ID=FLYGPLANS_ID
and TILLFLYGPLATS='chicago') as ANKOMSTGSTID 
from FLYGRESA X
where FRANFLYGPLATS='arlanda' 
and FLYGPLANS_ID in
(select FLYGPLANS_ID from FLYGRESA 
where TILLFLYGPLATS='chicago')
union
select FLYGPLANS_ID,AVGÅNGSTID,ANKOMSTGSTID
from FLYGRESA where 
TILLFLYGPLATS='chicago' and FRANFLYGPLATS ='arlanda'
```

Permalänk: https://www.webforum.nu/p/2085305

## #9 — LarsG, 2008-02-27T21:50Z

I din ursprungliga fråga så behövs det inte union

```
select FLYGPLANS_ID,
       AVGÅNGSTID,
       (select ANKOMSTGSTID 
          from FLYGRESA
         where x.FLYGPLANS_ID=FLYGPLANS_ID
           and TILLFLYGPLATS='chicago') as ANKOMSTGSTID 
  from FLYGRESA X
 where FRANFLYGPLATS='arlanda' 
   and FLYGPLANS_ID in
       (select FLYGPLANS_ID 
          from FLYGRESA 
         where TILLFLYGPLATS='chicago')
```

ger samma resultat. Du kommer att få med plan1 i båda delfrågorna men då du har union så tas duplikat bort. Om du byter mot union all så ser du det.

Alternativt så kan du skriva frågan som 

```
 select fr1.flygplans_id,
        fr1.avgångstid,
        fr2.ankomstgstid
   from flygresa fr1
   join flygresa fr2 on fr1.flygplans_id = fr2.flygplans_id
  where fr1.franflygplats = 'Arlanda'
    and fr2.tillflygplats = 'Chicago'
```

vilket jag tycker är mer lättläst.
Redigering, bytte till de rätta korrelationsnamnen.

Permalänk: https://www.webforum.nu/p/2085315

## #10 — krutov, 2008-02-28T07:49Z

Du har så rätt så!
Men det kändes skönt att vara på rätt väg iaf.

Tack så hemskt mycket! :D

Permalänk: https://www.webforum.nu/p/2085336

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/169379-behöver-lite-sql-hjälp
