Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: MySQL + ulkoinen avain

Ariel [26.01.2010 09:41:40]

#

Hei.

Voisiko joku kertoa, mikä on "oikea" tapa hakea taulusta dataa, kun taulujen välillä on ulkoinen avain?

Eli yritän hakea mahdollisimman oikeoppisesti tiedot:

AITI.aika, LAPSI.koodi, kun AITI.aika on väliltä aika1 - aika2
ja AITI.tieto = 7;

Lapsi taulussa on viittaus AITI tauluun: aiti_id

AITI
id
tieto
aika
LAPSI
id
koodi
aiti_id
koodi

Miten haetaan oikeaoppisesti (mahd. nopeasti) tiedot tauluista
kun käytössä on ulkoinen avain?

Grez [26.01.2010 11:38:44]

#

Se foreign key on muuten yleensä suomennettu vierasavaimeksi.

Yleensä tietojen hakemiseen käytetään ihan normaalisti JOINia.

B_R_H [27.01.2010 08:19:12]

#

Tehokkuuden määrään indeksointi ei niinkään pelkkä haku.

Pari tapaa liitostavasta riippuen. Molemmat lienee validit. En testannut tuliko ihan oikein.

select AITI.aika, LAPSI.koodi from AITI,LAPSI
where AITI.id=LAPSI.id and
AITI.aika between aika1 and aika2 and
AITI.tieto = 7;

tai sama asia toisin joinilla

select AITI.aika, LAPSI.koodi from AITI
join LAPSI on LAPSI.id = AITI.id
where AITI.aika between aika1 and aika2 and
AITI.tieto = 7;

Ariel [27.01.2010 09:14:35]

#

Grez: Niinpäs onkin.

B_H_R: Kiitos esimerkeistä. Täytyy lukea vähän lisää aiheesta.

Vastaus

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

Tietoa sivustosta