Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: MySQL-haku monesta taulusta?

spexi [12.07.2006 16:03:10]

#

Kuvitellaan että kannassa on taulut henkilöt ja ammatit. Henkilöt -taulu sisältää kentät id ja nimi. Ammatit -taulu sisältää kentät id, henkilöid ja ammatti. No, jos halutaan etsiä sellainen käyttäjä, jonka nimi on vaikka Matti ja ammatti koodari, voiko sellaisen haun tehdä yhdellä kertaa? Eli haku tuottaisi yhden id:n, joka toteutuisi molemmissa tauluissa, henkilöt-taulussa sen rivin id jossa nimenä on Matti ja ammatit-taulussa sen rivin henkilöid jonka ammatti on koodari.

Toki samaan tulokseen pääsisi kahdella haulla, ensiksi hakisi kaikki Matti-nimisten henkilöiden id:t ja sen jälkeen etsisi vastaavan id:n ammatit taulusta henkilöid-kentästä, jolloin samalla rivillä pitäisi olla koodari ammattina. Mutta kätevää olisi jos tuon saisi yhteen hakuun.

Toki näin vähän tietoja sisältävät taulut voisivat olla yhtenä tauluna myös, mutta näitä käytin vain esimerkkeinä. Kiitos avusta etukäteen jos joku osaa neuvoa!

ajv [12.07.2006 17:22:01]

#

Jep, simppeli JOIN vaan peliin:

SELECT
   h.id,
   h.nimi,
   a.ammatti
FROM
   Henkilöt AS h
INNER JOIN
   Ammatit AS a ON h.id = a.henkilöid
WHERE
   h.nimi = 'matti' AND
   a.ammatti = 'koodari'

Vastaus

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

Tietoa sivustosta