SQL: alikyselyonglema

Eli mulla on tällänen hakukysely vapaina olevista kirjoista:

SELECT * FROM Book WHERE bks_id NOT IN (SELECT bks_id FROM Loan) AND bks_name LIKE '".$name."' jne...

Nyt ongelmana on se, että pitäis saadakkin näkyviin sellaset kirjat jotka eivät ole Loan taulussa (kuten edellä oleva haku osoittaa) tai voivat olla loan taulussa mikäli bks_amount (yksittäisen kirjan kappalemäärä book taulussa) sarakkeessa oleva INT arvo on suurempi kuin Loan taulusta löytyneiden vastaavan kirjan rivien lukumäärä. ELi onko mahdollinen ja miten toteutettavissa?

Tulikohan tarpeeks epäselvästi ilmaistua, no toivottavasti joku tajus.. :)

Kiitos etukäteen!
1219
Äänestä

Muut lukivat myös

Vastaukset 1

Vanhimmat

esim tällä saa ne, joita on lainattu vähemmän kuin kirjoja on olemassa.

SELECT b.bks_id, bks_amount, count(a.bks_id) AS lainattuja
FROM book AS b, loan AS a
WHERE b.bks_id=a.bks_id
GROUP BY b.bks_id, b.bks_amount
HAVING (count(a.bks_id)>0 and count(a.bks_id)

Äänestä

Kommentoi aloitusta


juu kirjoitti:

Eli mulla on tällänen hakukysely vapaina olevista kirjoista:

SELECT * FROM Book WHERE bks_id NOT IN (SELECT bks_id FROM Loan) AND bks_name LIKE '".$name."' jne...

Nyt ongelmana on se, että pitäis saadakkin näkyviin sellaset kirjat jotka eivät ole Loan taulussa (kuten edellä oleva haku osoittaa) tai voivat olla loan taulussa mikäli bks_amount (yksittäisen kirjan kappalemäärä book taulussa) sarakkeessa oleva INT arvo on suurempi kuin Loan taulusta löytyneiden vastaavan kirjan rivien lukumäärä. ELi onko mahdollinen ja miten toteutettavissa?

Tulikohan tarpeeks epäselvästi ilmaistua, no toivottavasti joku tajus.. :)

Kiitos etukäteen!

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu