21
Jan
09

LEFT OUTER JOIN dua tabel dengan lebih dari satu kondisi

Hui panjang bener yak judulnya hehehe… Habis kagak nemu judul yg lebih singkat gitu. Biar aq ato temen-temen yg lain mudah buat carinya.

Ow iya, ini tulisan aq tentang gimana bikin LEFT OUTER JOIN dari dua tabel tapi dengan beberapa kondisi yang berbeda, seperti contohnya kita mau ambil data dari dua tabel yang memiliki id dan judul sama misalnya. Sebagai studi kasus aq, tadi aq mau ambil data dari database DetailTransaksi dan DetailKembali yang memiliki kesamaan TransaksiId dan BukuId.

Awalnya aq pakai statement seperti ini :

SELECT DetailTransaksiId, MasterBuku.JudulBuku, TanggalKembali FROM DetailTransaksi LEFT OUTER JOIN MasterBuku ON MasterBuku.BukuId = DetailTransaksi.BukuId LEFT OUTER JOIN Kembali ON Kembali.BukuId = DetailTransaksi.BukuId LEFT OUTER JOIN Kembali ON Kembali.TransaksiId = DetailTransaksi.TransaksiId WHERE (DetailTransaksi.TransaksiId = 2);

ato gampangnya kayak gini :

SELECT a.1, b.2 FROM b LEFT OUTER JOIN a on b.1=a.1 LEFT OUTER JOIN a on b.2=a.2;

tapi malah keluar error Not unique table/alias: 'a'

So, yang bener gimana? Kayak gini nih yang bener :

SELECT DetailTransaksiId, MasterBuku.JudulBuku, TanggalKembali FROM DetailTransaksi LEFT OUTER JOIN MasterBuku ON MasterBuku.BukuId = DetailTransaksi.BukuId LEFT OUTER JOIN Kembali ON Kembali.TransaksiId = DetailTransaksi.TransaksiId AND Kembali.BukuId = DetailTransaksi.BukuId WHERE (DetailTransaksi.TransaksiId = 2);

ato gampangnya kayak gini :

SELECT a.1, b.2 FROM b LEFT OUTER JOIN a on b.1=a.1 AND b.2=a.2;

dan ketemu deh ;)


9 Tanggapan ke “LEFT OUTER JOIN dua tabel dengan lebih dari satu kondisi”


  1. Januari 21, 2009 pukul 11:51 pm

    O… gitu tho…?!
    Thx tips-nya.

  2. 2 ayusa
    Januari 22, 2009 pukul 8:26 am

    thanx kunjungannya pak eshabe… salam BBC aja deh :)

  3. Januari 22, 2009 pukul 2:32 pm

    itu jeroan apa mbae?…

    kug kayaknya saya kenal yah

    :D

  4. 4 ayusa
    Januari 22, 2009 pukul 2:39 pm

    itu jeroan sapi mase. hmmm maknyus dibikin soto ;)

  5. Januari 22, 2009 pukul 10:25 pm

    dipermudah aja non..
    select a.1, b.2 from a, b where a.1=b.1 and a.2=b.2;

    — mungkin gitu juga bisa. coba aja bandingkan.

  6. Januari 23, 2009 pukul 8:02 am

    @mas saman : beda atuh mas, klo cara mas saman itu kan reguler join atau sama dengan select a.1, b.2 from a, b join a on a.1=b=1 and a.2=b.2 . maka keluarnya di query data yg bener2 sama antara a.1=b.1, a.2=b.2, sedangkan data yg null gak akan ditampilkan. nah untuk kasus aq ini aq mau menampilkan semua data meskipun di tabel b tuh null. dan left outer join berarti tabel sebelah kiri harus ditampilkan meskipun tabel sebelah kanan isinya null atau kosong. untuk kasusku aq mau menampilkan data peminjaman buku dari tabel detail transaksi dan detail kembali, data akan ditampilkan meskipun buku belum kembali yg artinya di tabel detail kembali isinya null. kalau pake cara mas saman maka data yg ditampilkan hanya data dimana dua2 tabel ada isinya. artinya data gak akan tampil jika buku belum dikembalikan.. itu mas bedanya reguler join sama outer join. btw thanx ya commentnya…

  7. Januari 30, 2009 pukul 10:49 am

    pagi Non,…
    Mohon petunjuknya untuk program pascal berikut ini:

    1) tulislah program yg dapat mengalikan dua bilangan bulat panjang di mana jumplah digit maksimum untuk masing masing bilangan adalah 100.

    Masukan dari program ini adalah string, yaitu dua bilangan yang akan dikalikan.

    keluaran dari program ini adalah string hasil perkalian dua ‘bilangan’ di atas

    petunjuk: gunakan larik karakter untuk menyimpan bilangan bulat, jangan menggunakan string. hal ini karena hasil perkalian 100 digit angka dengan 100 digit angkamungkin menghasilkan 10.000 digit angka!

  8. 8 Ndie
    Februari 20, 2009 pukul 11:17 am

    Yaaaccchhh..
    Pokok bahasan nya SQL..malah nanya pascal…; (piszz Bro) :p
    btw thanx mbak e.. buat info bout left outer nya

  9. 9 ayusa
    Maret 17, 2009 pukul 8:32 am

    @ Tono Batam : ho’o neh mas, lagi bahas mysql. kapan ya kalau bahas pascal. hmmm nunggu kuliah dulu kali baru aq belajar pascal. hehehe just kidding

    @ Ndie : sama2.. semoga bermanfaat


Tinggalkan Balasan




Pulsa Murah

Kata-kata Bijak

"Prasangka kita kepada orang lain secara tidak langsung adalah cerminan dari diri kita sendiri"

"Buktikan kemampuanmu dengan otak dan ototmu, jangan dengan mulutmu"

"Ketidakpahaman menyebabkan keragu-raguan"

Aturan Maen


JANGAN ASAL COPY-PASTE karena BLOG JUGA ADALAH HASIL KARYA CIPTA. Biasakan untuk meminta ijin kepada pemilik karya atau paling tidak menyebutkan sumber asal. Hitung-hitung bersilaturahmi dan memperluas pergaulan, bukan?

Curhat on Twitter

  • Qt gak selevel, aq paham. Jadi klo qt brsaing bakal g imbang!----------2 months ago
  • Pesen mas, ilmunya buat adek dw!----------2 months ago
  • Aih sombongnya. Baru juga bisa bikin program "hello word" aja!----------2 months ago
  • Di madiun,bus pecah ban. Alhamdulillah masih slamat...----------2 months ago
  • Posting twitter lewat nimbuzz. Abis dipost status dihapus----------3 months ago

Tanggalan

Januari 2009
S S R K J S M
« Des   Mar »
 1234
567891011
12131415161718
19202122232425
262728293031  

Community