[ Ovomojela @ 26.12.2009. 17:10 ] @
Imam sledeci zadatak:

Postoji telefonski imenik kao baza podataka. U toj bazi se nalazi tabela: KORISNICI od cega mi je za ovaj zadatak najbitnije to da se nalaze tu dva polja username i status (od cega status polje moze imati vreme 0 ili 1). I postoji druga tabela koja se naziva TELEFON gde imamo polje clan. E sad zadatak je:

Kako prikazati sve iz tabele telefon one upise gde se pojavljuje clan a koji ima status 1 iz tabele IMENIK. "username" iz KORISNICI nosi isti naziv kao i "clan" iz TELEFON.


Moja neka razmišljanja su

select * from korisnici where status='1'; // tu sam odabrao one korisnike koji imaju status 1

e kako da iskoristim njihov "username" da bih njega iskoristio za sledeći upit koji mi treba:

select * from telefon where clan= ????????

To ??????? mi treba.

Hvala!

[Ovu poruku je menjao Ovomojela dana 26.12.2009. u 20:50 GMT+1]
[ Jbyn4e @ 26.12.2009. 17:37 ] @
Nesto ovako, mada verovatno moze i bolje - nemam sad vremena da razmisljam :(
Code:
select * from telefon where clan in (select username from korisnici where status='1')
[ Ovomojela @ 26.12.2009. 19:49 ] @
Hvala druže, radi!
[ dakipro @ 27.12.2009. 12:56 ] @
Iako to mozda radi, sve mi se cini da ti baza nije dobro normalizovana jer imas redundancu `username` i `clan` polja.
To se obicno povezuje uz pomoc kljuceva i join-ova u mysql-u, cisto da imas u vidu to pa ako mozes da izmenis vec postojeci kod, ako ne, onda da imas u vidu za u buduce.