Yritän tehdä sql-kyselyä, jonka vastaus pitäisi olla vain yksi tietue,eli viimeisin lainaus.
Mukana vastauksessa pitää olla kuitenkin myös lainaajan nimi ja lainattu teos. Kuinka teen kyselyn niin, että saan kaikki tiedot yhdellä kyselyllä? GROUP BY antaa ylimääräisiä tietoja mukaan. Toisaalta jos mainitsen ne kyselyn ekarivillä, ne pitää groupata.
Mukana vastauksessa pitää olla kuitenkin myös lainaajan nimi ja lainattu teos. Kuinka teen kyselyn niin, että saan kaikki tiedot yhdellä kyselyllä? GROUP BY antaa ylimääräisiä tietoja mukaan. Toisaalta jos mainitsen ne kyselyn ekarivillä, ne pitää groupata.
Vastaukset 2
Vanhimmat
SELECT asiakas.nimi, teos.nimi, lainaus.aika
FROM teos INNER JOIN (asiakas INNER JOIN lainaus ON asiakas.id = lainaus.asiakas_id) ON teos.id = lainaus.teos_id
ORDER BY lainaus.aika DESC
LIMIT 1;
Tuota voit koittaa soveltaa omaan tarkoitukseesi. Tuo LIMIT 1 siis tekee sen, että se ottaa vain ensimmäisen tietueen minkä muu kysely palauttaa. Se toimii ainakin MySQL:ssä. En nyt tiedä, miten missäkin sql-ohjelmassa on asian laita.
MySQL on meittin demo-ohjelma.