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ä.
SELECT nimi3, nimi4 FROM tau2 WHERE tau1 IN (4, 5)
Ymmärsinkö kysymyksen oikein?
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.
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?
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.
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
Aihe on jo aika vanha, joten et voi enää vastata siihen.