[ slavica2000 @ 27.12.2004. 18:18 ] @
Imam select koji prikaze slogove iz dve tabele pod odredjenim uslovima, ali ne mogu se setiti kako se pise dodatak za slogove koji imaju u jednoj tabeli a nemaju u drugoj. Za pomoc evo deo koda koji radi
select broj_r, iznos_r, broj_i, iznos_i
from rac, izv
where broj_r = broj_i
[ Riste Pejov @ 27.12.2004. 21:36 ] @
Ovo je vise DB pitanje nego Pascal/Delphi :)

ali ipak, za da spojis dve tabele na nacin koji trazis mozes uraditi 4 tipa na join-a:

ako imamo dve tabele
Code:

Table A:
id    data
----------------
1    bla1
2    bla2
3    bla3
4    bla4

Table B:
id    data
----------------
2    bval2
3    bval3
6    bval6


I sada zelimo da spojimo sve slogove koje ima u obe tabele. To e to sto ustvari ti si uradila ... uradimo INNER JOIN

SELECT a.id, b.data FROM a INNER JOIN b ON a.id = b.id
Code:

rezultat:
id    data
----------------
2    bval2
3    bval3


Ako zelimo da spojimo desnu tabelu sa levom i u rezultatu dobiti polja iz desne tabele koje nemaju svoje parove u levu tabelu onda treba nam right join

SELECT a.id, b.data FROM a RIGHT JOIN b ON a.id = b.id
Code:

rezultat:
id    data
----------------
1    <NULL>
2    bval2
3    bval3
4    <NULL>


Ako zelimo obratno, da iz leve tabele dobijemo ceo recordset ukljucujuci i nespojene slogove iz desne tabele, normalno nam treba left join

SELECT a.id, b.data FROM a LEFT JOIN b ON a.id = b.id

Code:

rezultat:
id    data
----------------
2        bval2
3        bval3
<NULL>   bval6


jos imas FULL OUTER join koji ukljucuje sva polja iz obe tabele

SELECT a.id, b.data FROM a FULL OUTER JOIN b ON a.id = b.id

Code:

rezultat:
id    data
----------------
1        <NULL>
2        bval2
3        bval3
4        <NULL>
<NULL>   bval6


Ima jos nekoliko permutacija na temu join-a koji se zovu LEFT OUTER, RIGHT OUTER, ali u principu LEFT JOIN je isto sto i RIGHT OUTER JOIN samo je redosled u kome se ukljucuju tabele razlican.
[ jajo @ 28.12.2004. 08:27 ] @
select r.broj, r.iznos
from rac r
where not exists (select null
from izv i
where i.broj = r.broj)
[ slavica2000 @ 28.12.2004. 17:58 ] @
Hvala jos sam nesto naucila