Mas Padang, Wajar saja kalau querynya lambat, karena SQL yg anda jalankan akan menghasilkan cartesian product (jumlah data yg dihasilkan = jml data_famili x duduk_lokal x duduk_asing)
Cara mudahnya gunakan model himpunan (dulu pernah belajar sewaktu di SD khan?) logikanya = data_famili MINUS (duduk_lokal UNION duduk_asing) SELECT no_fam FROM data_famili MINUS (SELECT no_fam FROM duduk_lokal UNION SELECT no_fam FROM duduk_asing ) cmiiw, bw --- In [email protected], Padang Nadimpu <nadi...@...> wrote: > > > Kasus : > Ada 3 table, yaitu data_famili, duduk_lokal, duduk_asing > > Pada table data_famili (puluhan ribu record) ada field no_fam, misalnya > no_fam > ------------- > 1010092001 > 1010092002 > 1010092003 > 1010092004 > 1010092005 > 1010092006 > 1010092007 > 1010092008 > 1010092009 > 1010092010 > 1010092011 > > Pada table duduk_lokal (puluhan ribu record) juga ada field no_fam > yang sama dengan no_fam pada table data_famili, misalnya > no_fam > ------------- > 1010092001 > 1010092002 > 1010092003 > 1010092004 > > Pada table duduk_asing (ribu record) juga ada field no_fam > yang sama dengan no_fam pada table data_famili, misalnya > no_fam > ------------- > 1010092007 > 1010092008 > 1010092009 > > Mohon pencerahan Query > Seleksi (select) no_fam dari table data_famili, duduk_lokal, duduk_asing > dimana no_fam yang diseleksi dari data_famili tidak ada pada table > duduk_lokal juga tidak ada pada table duduk_asing. > > Saya telah mencoba query di bawah ini melalui TOAD. > > select a.no_fam as famili_fam,b.no_fam as lokal_fam,c.no_fam as asing_fam > from data_famili a, duduk_lokal b, duduk_asing c > where a.no_fam<> b.no_fam or a.no_fam<> c.no_fam > > Query seleksi di atas, proses untuk mendapat hasil seleksi sangat lambat, > dan rasanya tidak akurat. Untuk itu, mohon pencerahan query seleksi yang > lebih cepat dan akurat. > > Atas bantuannya diucapkan terimakasih. >

