Select join untuk kteteria yg sama

Dear all,
Sy ada kasus seperti ini :
Sy punya 2 tabel : tb_akun dan tb_data
Detainya tb_akun 
.id_akun
.nama_akun

Detailnya tb_data
.tgl
.akun_db
.akun_cr
.nilai

Pertanyaannya :
Cara menggabungkan id_akun (tb_akun) dengan akun_cr dan akun_db gimana ya
Sy pake coding ini, tp gk berjalan

SELECT tb_data.tgl,tb_akun.nama_akun,tb_akun.nama_akun,tb_data.nilai
FROM tb_data
JOIN tb_akun ON tb_akun.id_akun = tb_data.akun_db
AND tb_akun.id_akun = tb_data.akun_cr

Mohon bantuannya, terimakasih
avatar Taksetampanromeo

Ditanyakan oleh @Taksetampanromeo

6 Kontribusi 0 Poin

  • Detail datanya seperti apa? id_akun itu isinya apa? trus akun_db dan akun_cr itu isinya apa dan bedanya apa? - @ChronoJava
  • Detailnya seprti dibawah ini mas - @Taksetampanromeo

Login untuk menanggapi


Jawaban

Gini detailnya mas

tb_akun :
| id_akun | nama |
| 100   | Kas kecil |
| 200   | Hutang    |
| 400   | Pendapatan |
| 500  | Biaya        |

tb_data :
| id_data | tanggal | akun_db | akun_cr | nilai |
| 1            | 2/12/20 |    500     |   100       | 1.000 |

Jd yg diinginkan ada tampilannya seperti ini
Report :
| id_data | tanggal | akun_db | akun_cr | nilai |
| 1            | 2/12/20 |    biaya     |   kas      | 1.000 |

Untuk coding yg sy tulis sebelumnya hasil tidak keluar. Tp jika code 
" AND tb_akun.id_akun = tb_data.akun_cr " dihapus, maka tampilannya jadi gini :

Report :
| id_data | tanggal | akun_db | akun_cr | nilai |
| 1            | 2/12/20 |    biaya     |   100     | 1.000 |

Beda akun_db dan akun_cr adalah masalah lawan jurnal aja mas.
avatar Taksetampanromeo

Dijawab oleh @Taksetampanromeo

6 Kontribusi 0 Poin

Login untuk menanggapi


Nah, kalo gitu kan enak. Kalo cuma dikasih scriptnya trus bilang gak jalan ya kitanya bingung.
Berarti itu join nya 2X. Saya biasanya pake left join.

select data.id_data, data.tgl, db.nama_akun, cr.nama_akun , data.nilai
from tb_data data
left join tb_akun db on db.id_akun = data.akun_db
left join tb_akun cr on cr.id_akun = data.akun_cr

Kira-kira seperti itu gan.
avatar ChronoJava

Dijawab oleh @ChronoJava

40 Kontribusi 21 Poin

  • Maaf mas, setelah sy coba, yg dibaca justru left join yg terakhir, sehingga ketika di echo hasil db.nama_akun dan cr.nama_akun sama, seprti ini - @Taksetampanromeo

Login untuk menanggapi


tb_data :
| id_data | tanggal | akun_db | akun_cr | nilai |
| 1            | 2/12/20 |    kas kecil    |  kas kecil    | 1.000 |

Seharusnya

tb_data :
| id_data | tanggal | akun_db | akun_cr | nilai |
| 1            | 2/12/20 |    biaya     |   kas kecil     | 1.000 |
avatar Taksetampanromeo

Dijawab oleh @Taksetampanromeo

6 Kontribusi 0 Poin

Login untuk menanggapi


Login untuk gabung berdiskusi