Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: SQL-kysymys mitä lausekkeita ?

korppu [04.10.2006 10:26:05]

#

Terve.

Minulla on kaksi taulua:

tau1

ID|nimi1|nimi2|
1 |info |info |
2 |info |info |
3 |info |info |
4 |info |info |
5 |info |info |
---------------
tau2

ID|tau1(id)|nimi3|nimi4|
1 |    2   |info |info |
2 |    2   |info |info |
3 |    3   |info |info |
4 |    4   |info |info |
5 |    5   |info |info |
------------------------

Eli tau1 on tau2:sen "isä". Tai siis suhde on yhdestä-moneen.

[taustatietoa]
Luku 2: SELECT DISTINCT tau2.tau1(id) ORDER BY tau1(id) DESC LIMIT 2
[/taustatietoa
jolloin pitäisi tulla

tau1(id)
--------
|   5   |
|   4   |
--------

Eli haluaisin tehdä kyselyn: hae tieto3 ja tieto4 taulusta tau2 jotka kuuluvat tau1:sen ID:hen 4 ja 5

Nyt puuttuu taito, eli en osaa kirjoittaa tätä kyselyä.

Olga [04.10.2006 12:21:48]

#

SELECT nimi3, nimi4
FROM tau2
WHERE tau1 IN (4, 5)

Ymmärsinkö kysymyksen oikein?

korppu [04.10.2006 12:37:08]

#

Olga.

Eiköhän se tuollakin tule, mutta kyseessä on "käyttöliittymästä" annettava luku. Eli käyttäjä ei "näe" tietokannan sisältöä.

Tarkoituksena on, että käyttäjän antama luku menee muuttujaan, joka on lauseessa.

esim.
SELECT DISTINCT tau2.tau1(id) ORDER BY tau1(id) DESC LIMIT '$variable'

Ja kun tuosta tulee tulokset esim: (4 ja 5)
niin haettaisiin kaikki nimi3:set ja nimi4:set jotka kuuluvat nuihin (4 ja 5):seen.

Vähän sekava selitys, mutta toivottavasti ymmärsit.

Korim [04.10.2006 14:34:47]

#

Ja kun yhdistetään I vastaus ja sekava selityksesi niin saadaan:

SELECT nimi3, nimi4
FROM tau2
WHERE tau1 IN (SELECT DISTINCT tau2.tau1(id) ORDER BY tau1(id) DESC LIMIT '$variable')

Joka on kaiketi se mitä haettiin?

korppu [04.10.2006 15:12:13]

#

Korim.

Varmaan olisi, mutta :(

saan vain ilmoituksen, että:

This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'

Täytynee kai odotella, että MySQL:ään tämä tuki joskus saapuu.

El-Ejecutor [04.10.2006 15:21:31]

#

Päivitä / potki ylläpitäjää päivittämään mysli 5.0

edit: http://dev.mysql.com/doc/refman/5.0/en/row-subqueries.html
näyttäisi olevan ratkaisu

Vastaus

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

Tietoa sivustosta