Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: SQL-kysymys

korppu [22.09.2006 12:14:26]

#

Hei.

Olen tehnyt tietokannan, missä on tietoa planeetoista yms. (EI ALLA OLEVA !)
Nyt tarvitsisin apua seuraavanlaiseen kysymykseen:

Kun tietokantani on tämänlainen, niin onko mahdollisuutta hakea select lauseella kaikki ne planeetat, jotka kuuluvat universumiin, jonka nimi on tuntemammeuniversumi ?
tai voitaisiinko tehdä sama kysely, mutta nimen sijasta annettaisiinkin universumin id:n ?

Eli jos tehtäisiin kysely: SELECT nimi, elämää from planeetat, jotka kuuluvat universumiin=tuntemammeuniversumi, niin saataisiin tulokset:

TULOKSET:

nimi     elämää
jupiter    ei
mars       ei

TK-on tämänlainen (ei siis näin typerä oikeasti)

universumi
id  nimi
1   tuntemammeuniversumi
2   rinnakkaisuniversumi

aurinkokunnat
id   nimi               universumiID
1    aurinkokunta            1
2    kuukunta                2


planeetat
id nimi       aurinkokuntaID  elämää    syntynyt
1  jupiter           1           ei       1920
2  mars              1           ei       1720
3  plipx             2           on       1200

Olga [22.09.2006 19:21:05]

#

Kokeillaas jotain pohjattomasta hatusta:

SELECT nimi, elämää
FROM planeetat
WHERE aurinkokuntaID IN (
    SELECT id
    FROM aurinkokunnat
    WHERE universumiID = (
        SELECT id
        FROM universumi
        WHERE nimi = 'tuntemammeuniversumi'))

Saattaa olla typoja, mutta idean saanee selville.

korppu [24.09.2006 12:36:33]

#

Kiitos Olga pohjattoman hatun sisällöstä.

korppu [24.09.2006 22:11:29]

#

Hei Olga tai joku muu SQL:ää osaava.

Tietokantaani tuli vielä yksi taulu lisää ja nyt en osaa tehdä samantapaista kyselyä, vaikka yritin jäljitellä esimerkkiä.

Eli jos kuvitellaan, että universumi taulun "yläpuolella" olisi vielä yksi taulu

TAULU X
id    nimi
1     jotain1
2     jotain2

Ja universumi taulussa olisi siis tietty yksi kolumni lisää

id  jotainID       nimi
1       2           tuntemammeuniversumi
2       1           rinnakkaisuniversumi

Niin miten onnistuisi SAMA kysely, eli haettaisiin nimi, elämääjotka kuuluvat taulun X jotain1:seen ?

Olisin erittäin kiitollinen, jos joku viitsisi vielä kerran auttaa.

Metabolix [25.09.2006 06:25:19]

#

...
    WHERE universumiID = (
        SELECT id
        FROM universumi
        WHERE jotainID = (
            SELECT id
            FROM taulux
            WHERE nimi = 'jotain1')))

Vai kuinka? Tietysti WHERE jotainID IN eikä =, jos samalla jotain-nimellä voi tulla useampi jotainID. (Menikö edes osapuilleen oikein?)

korppu [25.09.2006 08:00:40]

#

Kiitos Metabolix. Samalla tavallahan se meni, kuin edellinenkin. Olin vain unohtanut hakasulkeen lauseesta. :)

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta