Tolong pilih kategori sesuai, jenis posting (diskusi atau bukan) dan sertakan tag/topik yang sesuai seperti komputer, java, php, mysql, dll. Promosi atau posting tidak pada tempatnya akan kami hapus!
- Bagi Anda yang ingin mendaftar, baca link berikut:
http://diskusiweb.com/discussion/50491/how-to-registrasi-diskusiweb-com-baca-ini-terlebih-dahulu
- Cara menyisipkan kode program supaya tampil rapi dan terformat dengan baik di diskusiweb.com: http://www.diskusiweb.com/discussion/50415/cara-menyisipkan-kode-program-di-diskusiweb-com
- Cara posting gambar/image di post Anda: http://www.diskusiweb.com/discussion/47345/cara-menyisipkan-menyertakan-image-pada-posting/p1

Dua tabel

Tabel-nya gini :
Tabel_A lebih banyak dari Tabel_B dengan Key NIP.

Tanya :
Saya mau menggabungkan dua tabel ini tetapi Semua tabel_A tampil , Baik NIP-nya ada di tabel B maupun tidak.

Kalo di Oracle -SQL-nya +/- gini:
SELECT a.NIP, b.NAMA from Tabel_A a, Tabel_B b where b.NIP = a.NIP(+)

Nah Kalo di SQLServer Gimana ya?

Comments

  • PAke LEft Outer Join
    Jadi semua yang ditable A DiMunculkan
    dengan Key NIP

    SELECT A.NIP,B.NAMA FROM A LEFT OUTER JOIN B ON A.NIP = B.NIP
    Where ......

  • SELECT a.NIP, b.NAMA FROM Tabel_A a LEFT JOIN Tabel_B b ON b.NIP = a.NIP


    semua nip pada table a akan dimunculkan, dan bila nip pada table b tidak ditemukan, maka column kedua akan menampilkan "NULL".
  • sip2..........
  • klo kasusnya mau menggabungkan 2 tabel atau lebih gmn? ..
    contoh ada Tabel1,Tabel2,Tabel3
    Tabel1:
    NIP | NAMA

    1 | aa
    2 | ab
    3 | ac

    Tabel2:
    NIP | NAMA

    4 | ba
    5 | bb
    6 | bc

    Tabel3:
    NIP | NAMA

    7 | ca
    8 | cb
    9 | cc

    naaahhhh gmn query-nya biar muncul record hasil gabungan 3 tabel tadi .. contoh:
    Tabel1:
    NIP | NAMA

    1 | aa
    2 | ab
    3 | ac
    4 | ba
    5 | bb
    6 | bc
    7 | ca
    8 | cb
    9 | cc


    anyone? .. help plizzz
  • kalau nampilin seperti itu tambah gampang lagi mas, karena mas cukup menggunakan UNION dah teratasi, baik 10 tabelpun g masalah
  • klo contoh kasusnya ky gitu statement unionSQL-nya gmn ya mas Eko? ... thx b4
  • silahkan mas coba query berikut ini:
    ...
    ...
    SELECT NIP,Nama FROM TabelA
    UNION
    SELECT NIP,Nama FROM TabelB
    UNION
    SELECT NIP,Nama FROM TabelC
    UNION
    SELECT NIP,Nama FROM TabelD
    ...
    ...
    

    semoga membantu
  • oya udah bisa dink .. thx mas Eko

    eeeuu tapi klo dari query itu mo pake statement WHERE naronya di mana ya?

    mmmm misalnya dari hasil union tersebut mo nyari yg NIP-nya 7 ...
    apa begini?

    SELECT NIP, NAMA
    FROM Tabel1 WHERE NIP=7
    UNION
    SELECT NIP, NAMA
    FROM Tabel2 WHERE NIP=7
    SELECT NIP, NAMA
    FROM Tabel3 WHERE NIP=7


    atau?

    SELECT NIP, NAMA
    FROM Tabel1
    UNION
    SELECT NIP, NAMA
    FROM Tabel2
    SELECT NIP, NAMA
    FROM Tabel3 WHERE NIP=7


    oya atu lagi ... :D ..
    Tabel1=3 rows Tabel2=3 rows Tabel3=3 rows ... tapi setelah diUNION .. hasilnya koq cuman 7 rows ya?
  • SELECT C.*
    FROM(
    SELECT * FROM A
    UNION ALL
    SELECT * FROM B) C
    --untuk filter
    WHERE C.NIP = '7'
  • oya .. thx b4 Gi, tapi setelah dicoba kok malah berkurang drastis ya? mmmmm OK aslinya klo dijumlahin ada 1871 Rows pake query UNION standar malah jadi 1864 pake UNION yg Agigi kasi (tanpa WHERE) malah jadi 613
  • where cukup di tabel terakhir saja.

    kalau boleh tahu, silahkan detail dari row itu koq bisa cuma tampil 7 aja, padahalkan harusnya 9. bteul g?

    aq tunggu....
  • walaaa masa sih
    padahal sudah union all tapi bisa kurang :D
    wahh kacau dong :D memang tablenya kaya gimana bentuknya.
    harusnya di union all bertambah semua. aneh yah kok bisa jadi lebih sedikit.padahal aku udah coba nambah semua he...he.. kalo boleh tau table mu seperti apa dan querynya kaya apa yah
    boleh dong di post :D sama sama belajar jadinya :D

    ps: aku dah coba sih pake contoh yang nip itu dengan query ini
    select c.*
    from(
    select * from tabel1
    union all
    select * from tabel2
    union all
    select * from tabel3) c

    hasilnya 9 lho :)
  • jadi gini intinya ...
    ada 3 tabel yg isinya jenis2 menu dan transaksi jadi misalnya Tabel A isinya daftar transaksi2 yg berhubungan dengan keuangan (input, edit delete data dsb) Tabel B isinya daftar transaksi2 non keuangan (searching transaksi, laporan dsb) dan Table C yg isinya daftar menu2 yg sifatnya non transaksi atau administrasi (setup user, passwd management dsb) ....... oya jgn nanya knp desain tabelnya ky gini ya? maklum ini database pelimpahan dari orang sebelumnya ^^ ....... oya inilah field2nya

    TabelA (504 rows)
    TCode ProdType TDesc FormName Signature TotalUser FCat

    TabelB (1258 rows)
    TCode ProdType TDesc FormName FCat

    TabelC (109 rows)
    FId FDesc FCat

    .........
    nahh maksudnya mo bikin query yg menggambungkan TCode,FCat (TabelA) TCode,FCat (TabelB) FId,FCat (TabelC) dengan lain mo nampilin query dengan hasil sbb
    QUERY
    Field1 = TabelA.TCode + TabelB.TCode + TabelC.FId
    Field2 = TabelA.FCat + TabelB.FCat + TabelC.FCat
    .... gmn tuh???

    oyaaa seperti yg dijelaskan, hasil query UNION-nya itu jadi 1864 (padahal klo qta liat total row kan 1871) tapiiii setelah nyoba query berikut
    SELECT TCode FROM TabelA WHERE TCode NOT IN (UNION QUERY Field1)
    dan
    SELECT TCode FROM TabelB WHERE TCode NOT IN (UNION QUERY Field1)
    dan
    SELECT FId FROM TabelC WHERE FId NOT IN (UNION QUERY Field1)
    3 query di atas menunjukkan 0 ROW!!! berarti smua kode udah masuk kan? tapi kok jumlahnya masih kurang ya?
  • harusnya sih pake
    select c.a, c.b
    from(
    select * from tabel1
    union all
    select * from tabel2
    union all
    select * from tabel3) c

    udah jalan sih mas, kalo masih nga bisa sih mungkin teman yang laen bisa bantu soalnya di aku sih jalan :D aneh juga
Sign In or Register to comment.