Biasanya aplikasi Android yang berhubungan dengan data, misal menampilkan atau menambahkan / mengedit data, pasti menggunakan SQL dalam pemrosesan data tersebut. SQL nya dapat ditempatkan di sisi aplikasi Androidnya sendiri atau pun di sisi server.
Oleh karena SQL sangat dibutuhkan dalam pengembangan aplikasi Android maka kali ini saya akan membahas sedikit mengenai perbedaan Where dan On pada left join SQL. Langsung ke contoh untuk lebih jelasnya.
Misal kita memiliki dua buah tabel yaitu Table_A & Table_B seperti di bawah.
Table_A:
date_sell | customer_number | outlet_number |
---|---|---|
2016-07-14 | 628170000001 | 628189998887 |
2016-07-15 | 628170000002 | 628189998887 |
2016-07-15 | 628170000003 | 628189998887 |
2016-07-15 | 628170000004 | 628189998887 |
2016-07-15 | 628170000005 | 628189998887 |
Table_B:
date_trn | customer_number |
---|---|
2016-07-23 | 628170000001 |
2016-07-23 | 628170000002 |
2016-07-23 | 628170000003 |
2016-07-23 | 628189998887 |
2016-07-23 | 628170000005 |
Jika kita menempatkan date_sell di bagian On saat melakukan left join seperti berikut :
select a.date_sell, a.customer_number, a.outlet_number, b.date_trn from table_a a left outer join table_b b on a.customer_number=b.customer_number and a.date_sell=’2016-07-14′
Maka hasilnya adalah seperti di bawah:
date_sell | customer_number | outlet_number | date_trn |
---|---|---|---|
2016-07-14 | 628170000001 | 628189998887 | 2016-07-23 |
2016-07-15 | 628170000002 | 628189998887 | 2016-07-23 |
2016-07-15 | 628170000003 | 628189998887 | 2016-07-23 |
2016-07-15 | 628170000004 | 628189998887 | 2016-07-23 |
2016-07-15 | 628170000005 | 628189998887 | 2016-07-23 |
Tentu saja jika kita sebenarnya ingin menampilkan hanya date_sell=’2016-07-14′ hasilnya akan salah.
Akan berbeda hasilnya jika kita menempatkan date_sell di sisi where seperti di bawah :
select a.date_sell, a.customer_number, a.outlet_number, b.date_trn from table_a a left outer join table_b b on a.customer_number=b.customer_number where a.date_sell=’2016-07-14′
Maka hasilnya sesuai dengan yang diharapkan seperti di bawah:
date_sell | customer_number | outlet_number | date_trn |
---|---|---|---|
2016-07-14 | 628170000001 | 628189998887 | 2016-07-23 |