Tema: Re: Padëkit su uþklausa
Autorius: Artūras Šlajus
Data: 2009-11-06 12:32:40
MaoDzeDunis wrote:
> Yra trys MySQL'inës lentelës:
> mokiniai (mok_id, mok_vardas, mok_pavarde)
> klases (kl_id, kl_pav, kl_metai)
> klasiu_nariai (kln_id, kln_klases_id, kln_mokinio_id)
> 
> Kaip iðgaut mokinius, kurie nëra priskirti jokiai klasei?

Lengviausias būdas yra su subselectu

SELECT * FROM mokiniai WHERE (SELECT COUNT(*) FROM klasiu_nariai WHERE 
kln_mokinio_id=mok_id) = 0

Bet šitas kiekvienam mokiniui daro query. Stabdo

Geriau yra kai sukuri mokinį įrašyti į klasiu_nariai įrašą, kur kln_klases_id 
yra NULL ir daryti left join.

SELECT mokiniai.* FROM klasiu_nariai
LEFT JOIN mokiniai ON kln_mokinio_id = mok_id
WHERE kln_klases_id IS NULL