Cara menampilkan data dari 2 tabel mysql

mungkin karena dimasing2 noruang itu memang hanya ada 1 gan coba agan duplikat noruang A101 dengan nobarang yg berbeda tp tetep dg awalan 3

Cara menampilkan data dari 2 tabel mysql

Dari keempat tabel tersebut, kita hanya menggunakan beberapa diantaranya. Adapun contoh datanya adalah sebagai berikut:

Tabel

+--------------+--------------+---------------+-----------------+
| id_transaksi | id_pelanggan | tgl_transaksi | total_transaksi |
+--------------+--------------+---------------+-----------------+
|            1 |            1 | 2017-02-22    |          230000 |
|            2 |            3 | 2017-02-22    |          195000 |
|            3 |            2 | 2017-01-01    |         1710000 |
|            4 |            1 | 2017-02-04    |          310000 |
|            5 |         NULL | 2017-02-10    |           80000 |
+--------------+--------------+---------------+-----------------+
3:

+-----------+-------------+-------------+---------+------+
| id_barang | id_kategori | nama_barang | harga   | stok |
+-----------+-------------+-------------+---------+------+
|         1 |           1 | RAM         |  230000 |    4 |
|         2 |           1 | Mainboard   | 1250000 |    7 |
|         3 |           1 | Mouse       |   80000 |    6 |
|         4 |           3 | Mousepad    |   35000 |    3 |
|         5 |           3 | Keyboard    |   80000 |    5 |
+-----------+-------------+-------------+---------+------+

Tabel

+--------------+--------------+---------------+-----------------+
| id_transaksi | id_pelanggan | tgl_transaksi | total_transaksi |
+--------------+--------------+---------------+-----------------+
|            1 |            1 | 2017-02-22    |          230000 |
|            2 |            3 | 2017-02-22    |          195000 |
|            3 |            2 | 2017-01-01    |         1710000 |
|            4 |            1 | 2017-02-04    |          310000 |
|            5 |         NULL | 2017-02-10    |           80000 |
+--------------+--------------+---------------+-----------------+
4

+--------------+---------+-------------------+
| id_pelanggan | nama    | email             |
+--------------+---------+-------------------+
|            1 | Alfa    | [email protected]    |
|            2 | Beta    | [email protected]    |
|            3 | Charlie | [email protected] |
|            4 | Delta   | [email protected]   |
+--------------+---------+-------------------+

Tabel

+--------------+--------------+---------------+-----------------+
| id_transaksi | id_pelanggan | tgl_transaksi | total_transaksi |
+--------------+--------------+---------------+-----------------+
|            1 |            1 | 2017-02-22    |          230000 |
|            2 |            3 | 2017-02-22    |          195000 |
|            3 |            2 | 2017-01-01    |         1710000 |
|            4 |            1 | 2017-02-04    |          310000 |
|            5 |         NULL | 2017-02-10    |           80000 |
+--------------+--------------+---------------+-----------------+
5

+--------------+--------------+---------------+-----------------+
| id_transaksi | id_pelanggan | tgl_transaksi | total_transaksi |
+--------------+--------------+---------------+-----------------+
|            1 |            1 | 2017-02-22    |          230000 |
|            2 |            3 | 2017-02-22    |          195000 |
|            3 |            2 | 2017-01-01    |         1710000 |
|            4 |            1 | 2017-02-04    |          310000 |
|            5 |         NULL | 2017-02-10    |           80000 |
+--------------+--------------+---------------+-----------------+

DOWNLOAD FILE SQL

I. JOIN Pada MySQL

Untuk menggabungkan tabel pada MySQL, kita gunakan klausa 

+--------------+--------------+---------------+-----------------+
| id_transaksi | id_pelanggan | tgl_transaksi | total_transaksi |
+--------------+--------------+---------------+-----------------+
|            1 |            1 | 2017-02-22    |          230000 |
|            2 |            3 | 2017-02-22    |          195000 |
|            3 |            2 | 2017-01-01    |         1710000 |
|            4 |            1 | 2017-02-04    |          310000 |
|            5 |         NULL | 2017-02-10    |           80000 |
+--------------+--------------+---------------+-----------------+
6 Pada MySQL terdapat dua macam bentuk join, yaitu
+--------------+--------------+---------------+-----------------+
| id_transaksi | id_pelanggan | tgl_transaksi | total_transaksi |
+--------------+--------------+---------------+-----------------+
|            1 |            1 | 2017-02-22    |          230000 |
|            2 |            3 | 2017-02-22    |          195000 |
|            3 |            2 | 2017-01-01    |         1710000 |
|            4 |            1 | 2017-02-04    |          310000 |
|            5 |         NULL | 2017-02-10    |           80000 |
+--------------+--------------+---------------+-----------------+
7,
+--------------+--------------+---------------+-----------------+
| id_transaksi | id_pelanggan | tgl_transaksi | total_transaksi |
+--------------+--------------+---------------+-----------------+
|            1 |            1 | 2017-02-22    |          230000 |
|            2 |            3 | 2017-02-22    |          195000 |
|            3 |            2 | 2017-01-01    |         1710000 |
|            4 |            1 | 2017-02-04    |          310000 |
|            5 |         NULL | 2017-02-10    |           80000 |
+--------------+--------------+---------------+-----------------+
8, dan
+--------------+--------------+---------------+-----------------+
| id_transaksi | id_pelanggan | tgl_transaksi | total_transaksi |
+--------------+--------------+---------------+-----------------+
|            1 |            1 | 2017-02-22    |          230000 |
|            2 |            3 | 2017-02-22    |          195000 |
|            3 |            2 | 2017-01-01    |         1710000 |
|            4 |            1 | 2017-02-04    |          310000 |
|            5 |         NULL | 2017-02-10    |           80000 |
+--------------+--------------+---------------+-----------------+
9. Format penulisannya adalah sebagai berikut:

SELECT nama_kolom
FROM tabel
INNER JOIN | LEFT OUTER JOIN | RIGHT OUTER JOIN tabel ON kondisi

Selain menggunakan klausa

SELECT nama_kolom
FROM tabel
INNER JOIN | LEFT OUTER JOIN | RIGHT OUTER JOIN tabel ON kondisi
0 untuk mendefinisikan kondisi, kita dapat menggunakan klausa
SELECT nama_kolom
FROM tabel
INNER JOIN | LEFT OUTER JOIN | RIGHT OUTER JOIN tabel ON kondisi
1, format penulisannya adalah:

SELECT nama_kolom
FROM tabel
INNER JOIN | LEFT OUTER JOIN | RIGHT OUTER JOIN tabel USING(nama_kolom)

Klausa

SELECT nama_kolom
FROM tabel
INNER JOIN | LEFT OUTER JOIN | RIGHT OUTER JOIN tabel ON kondisi
1 ini akan menggunakan nama kolom yang ada di dalam tanda kurung untuk menghubungkan kedua tabel, kolom ini harus ada pada tabel yang ingin dihubungkan dan harus memiliki nama yang sama.

Biasanya kolom yang berhubungan didefinisikan sebagai  

SELECT nama_kolom
FROM tabel
INNER JOIN | LEFT OUTER JOIN | RIGHT OUTER JOIN tabel ON kondisi
3 dan
SELECT nama_kolom
FROM tabel
INNER JOIN | LEFT OUTER JOIN | RIGHT OUTER JOIN tabel ON kondisi
4, namun tidak masalah jika keduanya bukan primary key maupun foreign key.

II. INNER atau CROSS JOIN

Cara pertama untuk menggabungkan tabel adalah menggunakan inner join. Dengan inner join, tabel akan digabungkan berdasarkan data yang sama, yang ada pada kedua tabel, jika di gambarkan dalam bentuk diagram venn, bentuk inner join seperti tampak pada gambar berikut:

Cara menampilkan data dari 2 tabel mysql

Pada MySQL, penulisan INNER JOIN dapat dilakukan dengan dua cara yaitu (1) menggunakan klausa

+--------------+--------------+---------------+-----------------+
| id_transaksi | id_pelanggan | tgl_transaksi | total_transaksi |
+--------------+--------------+---------------+-----------------+
|            1 |            1 | 2017-02-22    |          230000 |
|            2 |            3 | 2017-02-22    |          195000 |
|            3 |            2 | 2017-01-01    |         1710000 |
|            4 |            1 | 2017-02-04    |          310000 |
|            5 |         NULL | 2017-02-10    |           80000 |
+--------------+--------------+---------------+-----------------+
7 (2) menggunakan klausa
SELECT nama_kolom
FROM tabel
INNER JOIN | LEFT OUTER JOIN | RIGHT OUTER JOIN tabel ON kondisi
6 (3) cukup menggunakan klausa
+--------------+---------+-------------------+
| id_pelanggan | nama    | email             |
+--------------+---------+-------------------+
|            1 | Alfa    | [email protected]    |
|            2 | Beta    | [email protected]    |
|            3 | Charlie | [email protected] |
|            4 | Delta   | [email protected]   |
+--------------+---------+-------------------+
8 saja. Sobat bebas menggunakan keduanya asal konsisten, saya pribadi lebih  prefer menggunakan
+--------------+---------+-------------------+
| id_pelanggan | nama    | email             |
+--------------+---------+-------------------+
|            1 | Alfa    | [email protected]    |
|            2 | Beta    | [email protected]    |
|            3 | Charlie | [email protected] |
|            4 | Delta   | [email protected]   |
+--------------+---------+-------------------+
8 saja, karena lebih simpel.

Sebagai contoh kita akan menampilkan data pelanggan yang melakukan pesanan, query yang kita jalankan:

SELECT pl.id_pelanggan, nama, tgl_transaksi, total_transaksi
FROM pelanggan pl
JOIN penjualan pn ON pl.id_pelanggan = pn.id_pelanggan

Jika menggunakan klausa

SELECT nama_kolom
FROM tabel
INNER JOIN | LEFT OUTER JOIN | RIGHT OUTER JOIN tabel ON kondisi
1, maka query akan berbentuk seperti berikut:

SELECT pl.id_pelanggan, nama, tgl_transaksi, total_transaksi
FROM pelanggan pl
JOIN penjualan pn USING(id_pelanggan)

Hasil:

+--------------+---------+---------------+-----------------+
| id_pelanggan | nama    | tgl_transaksi | total_transaksi |
+--------------+---------+---------------+-----------------+
|            1 | Alfa    | 2017-02-22    |          230000 |
|            3 | Charlie | 2017-02-22    |          195000 |
|            2 | Beta    | 2017-01-01    |         1710000 |
|            1 | Alfa    | 2017-02-04    |          310000 |
+--------------+---------+---------------+-----------------+

Pada contoh diatas, terlihat bahwa

  • Pelanggan dengan nama Delta tidak muncul, hal ini disebabkan pelanggan tersebut tidak pernah melakukan transaksi.
  • Transaksi dengan id_trx 5 tidak muncul, karena transaksi tersebut memiliki nilai id_transaksi
    SELECT nama_kolom
    FROM tabel
    INNER JOIN | LEFT OUTER JOIN | RIGHT OUTER JOIN tabel USING(nama_kolom)
    0, sehingga tidak terhubung ke pelanggan manapun.

II. OUTER JOIN

Cara kedua untuk menggabungkan tabel pada MySQL adalah menggunakan outer join. Pada outer join, data pada salah satu tabel akan ditampilkan semua, sedangkan data pada tabel yang lain hanya akan ditampilkan jika data tersebut ada pada tabel pertama.

Pada MySQL, OUTER JOIN dibagi menjadi dua, yaitu

+--------------+--------------+---------------+-----------------+
| id_transaksi | id_pelanggan | tgl_transaksi | total_transaksi |
+--------------+--------------+---------------+-----------------+
|            1 |            1 | 2017-02-22    |          230000 |
|            2 |            3 | 2017-02-22    |          195000 |
|            3 |            2 | 2017-01-01    |         1710000 |
|            4 |            1 | 2017-02-04    |          310000 |
|            5 |         NULL | 2017-02-10    |           80000 |
+--------------+--------------+---------------+-----------------+
8 dan
+--------------+--------------+---------------+-----------------+
| id_transaksi | id_pelanggan | tgl_transaksi | total_transaksi |
+--------------+--------------+---------------+-----------------+
|            1 |            1 | 2017-02-22    |          230000 |
|            2 |            3 | 2017-02-22    |          195000 |
|            3 |            2 | 2017-01-01    |         1710000 |
|            4 |            1 | 2017-02-04    |          310000 |
|            5 |         NULL | 2017-02-10    |           80000 |
+--------------+--------------+---------------+-----------------+
9.

1 LEFT OUTER JOIN

Pada

+--------------+--------------+---------------+-----------------+
| id_transaksi | id_pelanggan | tgl_transaksi | total_transaksi |
+--------------+--------------+---------------+-----------------+
|            1 |            1 | 2017-02-22    |          230000 |
|            2 |            3 | 2017-02-22    |          195000 |
|            3 |            2 | 2017-01-01    |         1710000 |
|            4 |            1 | 2017-02-04    |          310000 |
|            5 |         NULL | 2017-02-10    |           80000 |
+--------------+--------------+---------------+-----------------+
8, semua data pada tabel sebelah kiri akan ditampilkan, sedangkan data pada tabel disebelah kanan hanya akan ditampilkan jika data terkait pada tabel tersebut muncul di tabel sebelah kiri.

Jika di gambarkan dalam bentuk diagram venn, bentuk

+--------------+--------------+---------------+-----------------+
| id_transaksi | id_pelanggan | tgl_transaksi | total_transaksi |
+--------------+--------------+---------------+-----------------+
|            1 |            1 | 2017-02-22    |          230000 |
|            2 |            3 | 2017-02-22    |          195000 |
|            3 |            2 | 2017-01-01    |         1710000 |
|            4 |            1 | 2017-02-04    |          310000 |
|            5 |         NULL | 2017-02-10    |           80000 |
+--------------+--------------+---------------+-----------------+
8 tampak pada gambar berikut:

Cara menampilkan data dari 2 tabel mysql

+--------------+--------------+---------------+-----------------+
| id_transaksi | id_pelanggan | tgl_transaksi | total_transaksi |
+--------------+--------------+---------------+-----------------+
|            1 |            1 | 2017-02-22    |          230000 |
|            2 |            3 | 2017-02-22    |          195000 |
|            3 |            2 | 2017-01-01    |         1710000 |
|            4 |            1 | 2017-02-04    |          310000 |
|            5 |         NULL | 2017-02-10    |           80000 |
+--------------+--------------+---------------+-----------------+
8 dapat ditulis menggunakan dua cara, yaitu (1) dengan klausa
+--------------+--------------+---------------+-----------------+
| id_transaksi | id_pelanggan | tgl_transaksi | total_transaksi |
+--------------+--------------+---------------+-----------------+
|            1 |            1 | 2017-02-22    |          230000 |
|            2 |            3 | 2017-02-22    |          195000 |
|            3 |            2 | 2017-01-01    |         1710000 |
|            4 |            1 | 2017-02-04    |          310000 |
|            5 |         NULL | 2017-02-10    |           80000 |
+--------------+--------------+---------------+-----------------+
8, (2) cukup dengan klausa
SELECT nama_kolom
FROM tabel
INNER JOIN | LEFT OUTER JOIN | RIGHT OUTER JOIN tabel USING(nama_kolom)
7 saja, sobat bebas memilih salah satu yang penting konsisten, saya sendiri prefer menggunakan bentuk kedua karena lebih simpel.

Contoh kita tampilkan semua data pelanggan beserta data transaksinya, jalankan query berikut:

SELECT pl.id_pelanggan, nama, tgl_transaksi, total_transaksi
FROM pelanggan pl
LEFT JOIN penjualan USING(id_pelanggan)

Hasil:

+--------------+---------+---------------+-----------------+
| id_pelanggan | nama    | tgl_transaksi | total_transaksi |
+--------------+---------+---------------+-----------------+
|            1 | Alfa    | 2017-02-22    |          230000 |
|            3 | Charlie | 2017-02-22    |          195000 |
|            2 | Beta    | 2017-01-01    |         1710000 |
|            1 | Alfa    | 2017-02-04    |          310000 |
|            4 | Delta   | NULL          |            NULL |
+--------------+---------+---------------+-----------------+

Pada contoh diatas, terlihat bahwa dengan

SELECT nama_kolom
FROM tabel
INNER JOIN | LEFT OUTER JOIN | RIGHT OUTER JOIN tabel USING(nama_kolom)
7, data pada tabel sebelah kiri, yaitu tabel
+--------------+---------+-------------------+
| id_pelanggan | nama    | email             |
+--------------+---------+-------------------+
|            1 | Alfa    | [email protected]    |
|            2 | Beta    | [email protected]    |
|            3 | Charlie | [email protected] |
|            4 | Delta   | [email protected]   |
+--------------+---------+-------------------+
9 akan ditampilkan semua, sedangkan data pada tabel sebelah kanan hanya akan ditampilkan jika nilai kolom id_pelanggan nya muncul pada tabel pertama, yaitu id_pelanggan 1, 2, dan 3

2 RIGHT OUTER JOIN

Kebalikan dari

+--------------+--------------+---------------+-----------------+
| id_transaksi | id_pelanggan | tgl_transaksi | total_transaksi |
+--------------+--------------+---------------+-----------------+
|            1 |            1 | 2017-02-22    |          230000 |
|            2 |            3 | 2017-02-22    |          195000 |
|            3 |            2 | 2017-01-01    |         1710000 |
|            4 |            1 | 2017-02-04    |          310000 |
|            5 |         NULL | 2017-02-10    |           80000 |
+--------------+--------------+---------------+-----------------+
8, pada
+--------------+--------------+---------------+-----------------+
| id_transaksi | id_pelanggan | tgl_transaksi | total_transaksi |
+--------------+--------------+---------------+-----------------+
|            1 |            1 | 2017-02-22    |          230000 |
|            2 |            3 | 2017-02-22    |          195000 |
|            3 |            2 | 2017-01-01    |         1710000 |
|            4 |            1 | 2017-02-04    |          310000 |
|            5 |         NULL | 2017-02-10    |           80000 |
+--------------+--------------+---------------+-----------------+
9, data pada tabel sebelah kanan akan ditampilkan semua, sedangkan data pada sebelah kiri hanya ditampilkan jika data terkait pada tabel tersebut muncul pada tabel sebelah kanan.

Jika digambarkan dalam bentuk diagram venn, maka, bentuk right outer join akan tampak seperti gambar berikut:

Cara menampilkan data dari 2 tabel mysql

Sama seperti

+--------------+--------------+---------------+-----------------+
| id_transaksi | id_pelanggan | tgl_transaksi | total_transaksi |
+--------------+--------------+---------------+-----------------+
|            1 |            1 | 2017-02-22    |          230000 |
|            2 |            3 | 2017-02-22    |          195000 |
|            3 |            2 | 2017-01-01    |         1710000 |
|            4 |            1 | 2017-02-04    |          310000 |
|            5 |         NULL | 2017-02-10    |           80000 |
+--------------+--------------+---------------+-----------------+
8,
+--------------+--------------+---------------+-----------------+
| id_transaksi | id_pelanggan | tgl_transaksi | total_transaksi |
+--------------+--------------+---------------+-----------------+
|            1 |            1 | 2017-02-22    |          230000 |
|            2 |            3 | 2017-02-22    |          195000 |
|            3 |            2 | 2017-01-01    |         1710000 |
|            4 |            1 | 2017-02-04    |          310000 |
|            5 |         NULL | 2017-02-10    |           80000 |
+--------------+--------------+---------------+-----------------+
9 juga dapat ditulis menggunakan dua cara, yaitu ditulis secara utuh atau cukup
SELECT pl.id_pelanggan, nama, tgl_transaksi, total_transaksi
FROM pelanggan pl
JOIN penjualan pn ON pl.id_pelanggan = pn.id_pelanggan
4 saja. Saya sendiri lebih prefer menggunakan
SELECT pl.id_pelanggan, nama, tgl_transaksi, total_transaksi
FROM pelanggan pl
JOIN penjualan pn ON pl.id_pelanggan = pn.id_pelanggan
4 saja.

Contoh kita tampilkan semua data transaksi beserta data pelanggannya, jalankan query berikut:

+--------------+---------+-------------------+
| id_pelanggan | nama    | email             |
+--------------+---------+-------------------+
|            1 | Alfa    | [email protected]    |
|            2 | Beta    | [email protected]    |
|            3 | Charlie | [email protected] |
|            4 | Delta   | [email protected]   |
+--------------+---------+-------------------+
0

Hasil:

+--------------+---------+-------------------+
| id_pelanggan | nama    | email             |
+--------------+---------+-------------------+
|            1 | Alfa    | [email protected]    |
|            2 | Beta    | [email protected]    |
|            3 | Charlie | [email protected] |
|            4 | Delta   | [email protected]   |
+--------------+---------+-------------------+
1

Pada contoh diatas, terlihat bahwa semua data pada tabel disebelah kanan, yaitu tabel

SELECT pl.id_pelanggan, nama, tgl_transaksi, total_transaksi
FROM pelanggan pl
JOIN penjualan pn ON pl.id_pelanggan = pn.id_pelanggan
6 akan ditampilkan semua, sedangkan pada tabel sebelah kiri hanya ditampilkan yang data
SELECT pl.id_pelanggan, nama, tgl_transaksi, total_transaksi
FROM pelanggan pl
JOIN penjualan pn ON pl.id_pelanggan = pn.id_pelanggan
7 nya muncul pada tabel penjualan.

Perlukah RIGHT JOIN?

Jika kita teliti lebih lanjut, sebenarnya right join hanya memindah posisi tabel, dari kiri ke kanan, contoh query pada right join dapat kita ubah dengan menjadi

SELECT nama_kolom
FROM tabel
INNER JOIN | LEFT OUTER JOIN | RIGHT OUTER JOIN tabel USING(nama_kolom)
7 dengan mengubah posisi tabel, perhatikan contoh berikut:

+--------------+---------+-------------------+
| id_pelanggan | nama    | email             |
+--------------+---------+-------------------+
|            1 | Alfa    | [email protected]    |
|            2 | Beta    | [email protected]    |
|            3 | Charlie | [email protected] |
|            4 | Delta   | [email protected]   |
+--------------+---------+-------------------+
2

Perhatikan pada contoh diatas, kita balik posisi tabel

SELECT pl.id_pelanggan, nama, tgl_transaksi, total_transaksi
FROM pelanggan pl
JOIN penjualan pn ON pl.id_pelanggan = pn.id_pelanggan
6 dan tabel
+--------------+---------+-------------------+
| id_pelanggan | nama    | email             |
+--------------+---------+-------------------+
|            1 | Alfa    | [email protected]    |
|            2 | Beta    | [email protected]    |
|            3 | Charlie | [email protected] |
|            4 | Delta   | [email protected]   |
+--------------+---------+-------------------+
9. Jika query terebut dijalankan, hasil yang kita peroleh adalah:

+--------------+---------+-------------------+
| id_pelanggan | nama    | email             |
+--------------+---------+-------------------+
|            1 | Alfa    | [email protected]    |
|            2 | Beta    | [email protected]    |
|            3 | Charlie | [email protected] |
|            4 | Delta   | [email protected]   |
+--------------+---------+-------------------+
1

Perhatikan bahwa hasil diatas sama persis dengan hasil pada contoh right join, jadi kesimpulannya, agar memudahkan, cukup gunakan salah satu bentuk outer join saja,

SELECT nama_kolom
FROM tabel
INNER JOIN | LEFT OUTER JOIN | RIGHT OUTER JOIN tabel USING(nama_kolom)
7 atau
SELECT pl.id_pelanggan, nama, tgl_transaksi, total_transaksi
FROM pelanggan pl
JOIN penjualan pn ON pl.id_pelanggan = pn.id_pelanggan
4, saya sendiri prefer menggunakan
SELECT nama_kolom
FROM tabel
INNER JOIN | LEFT OUTER JOIN | RIGHT OUTER JOIN tabel USING(nama_kolom)
7.

III. IMPLISIT JOIN

Sejauh ini, kita menampilkan data dari beberapa tabel MySQL dengan menggunakan klausa JOIN.

Selain menggunakan klausa

+--------------+---------+-------------------+
| id_pelanggan | nama    | email             |
+--------------+---------+-------------------+
|            1 | Alfa    | [email protected]    |
|            2 | Beta    | [email protected]    |
|            3 | Charlie | [email protected] |
|            4 | Delta   | [email protected]   |
+--------------+---------+-------------------+
8, terdapat satu cara lagi untuk menggabungkan tabel MySQL, yaitu menggunakan implisit join, disebut implisit join karena kita tidak menggunakan klausa
+--------------+---------+-------------------+
| id_pelanggan | nama    | email             |
+--------------+---------+-------------------+
|            1 | Alfa    | [email protected]    |
|            2 | Beta    | [email protected]    |
|            3 | Charlie | [email protected] |
|            4 | Delta   | [email protected]   |
+--------------+---------+-------------------+
8, pada implisit join, kriteria hubungan antar tabel di definisikan pada klausa
SELECT pl.id_pelanggan, nama, tgl_transaksi, total_transaksi
FROM pelanggan pl
JOIN penjualan pn USING(id_pelanggan)
6.

Sebagai contoh, mari kita gabungkan tabel pelanggan dan penjualan, jalankan query berikut:

+--------------+---------+-------------------+
| id_pelanggan | nama    | email             |
+--------------+---------+-------------------+
|            1 | Alfa    | [email protected]    |
|            2 | Beta    | [email protected]    |
|            3 | Charlie | [email protected] |
|            4 | Delta   | [email protected]   |
+--------------+---------+-------------------+
4

Hasil yang kita peroleh:

+--------------+---------+-------------------+
| id_pelanggan | nama    | email             |
+--------------+---------+-------------------+
|            1 | Alfa    | [email protected]    |
|            2 | Beta    | [email protected]    |
|            3 | Charlie | [email protected] |
|            4 | Delta   | [email protected]   |
+--------------+---------+-------------------+
5

Perhatikan bahwa hasil tersebut sama persis dengan hasil pada contoh

+--------------+--------------+---------------+-----------------+
| id_transaksi | id_pelanggan | tgl_transaksi | total_transaksi |
+--------------+--------------+---------------+-----------------+
|            1 |            1 | 2017-02-22    |          230000 |
|            2 |            3 | 2017-02-22    |          195000 |
|            3 |            2 | 2017-01-01    |         1710000 |
|            4 |            1 | 2017-02-04    |          310000 |
|            5 |         NULL | 2017-02-10    |           80000 |
+--------------+--------------+---------------+-----------------+
7, sehingga dapat disimpulkan bahwa implisit join = inner join.

Implisit join mensyaratkan kedua tabel memiliki data yang sama (

SELECT pl.id_pelanggan, nama, tgl_transaksi, total_transaksi
FROM pelanggan pl
JOIN penjualan pn USING(id_pelanggan)
8 ), sehingga implisit join ini hanya berlaku pada
+--------------+--------------+---------------+-----------------+
| id_transaksi | id_pelanggan | tgl_transaksi | total_transaksi |
+--------------+--------------+---------------+-----------------+
|            1 |            1 | 2017-02-22    |          230000 |
|            2 |            3 | 2017-02-22    |          195000 |
|            3 |            2 | 2017-01-01    |         1710000 |
|            4 |            1 | 2017-02-04    |          310000 |
|            5 |         NULL | 2017-02-10    |           80000 |
+--------------+--------------+---------------+-----------------+
7, dan tidak bisa digunakan untuk
+--------------+---------+---------------+-----------------+
| id_pelanggan | nama    | tgl_transaksi | total_transaksi |
+--------------+---------+---------------+-----------------+
|            1 | Alfa    | 2017-02-22    |          230000 |
|            3 | Charlie | 2017-02-22    |          195000 |
|            2 | Beta    | 2017-01-01    |         1710000 |
|            1 | Alfa    | 2017-02-04    |          310000 |
+--------------+---------+---------------+-----------------+
0.

Implisit JOIN ini merupakan cara lama ketika pertama kali standar SQL dibuat, setelah muncul standar yang lebih baru (SQL2) maka mulai digunakanlah klausa

+--------------+---------+-------------------+
| id_pelanggan | nama    | email             |
+--------------+---------+-------------------+
|            1 | Alfa    | [email protected]    |
|            2 | Beta    | [email protected]    |
|            3 | Charlie | [email protected] |
|            4 | Delta   | [email protected]   |
+--------------+---------+-------------------+
8. Saya sendiri prefer menggunakan klausa
+--------------+---------+-------------------+
| id_pelanggan | nama    | email             |
+--------------+---------+-------------------+
|            1 | Alfa    | [email protected]    |
|            2 | Beta    | [email protected]    |
|            3 | Charlie | [email protected] |
|            4 | Delta   | [email protected]   |
+--------------+---------+-------------------+
8 karena lebih mudah dibaca dan dipahami, terutama hubungan antara tabel yang digabungkan.

Pada bentuk klausa

+--------------+---------+-------------------+
| id_pelanggan | nama    | email             |
+--------------+---------+-------------------+
|            1 | Alfa    | [email protected]    |
|            2 | Beta    | [email protected]    |
|            3 | Charlie | [email protected] |
|            4 | Delta   | [email protected]   |
+--------------+---------+-------------------+
8, hubungan antar tabel dinyatakan pada klausa
SELECT nama_kolom
FROM tabel
INNER JOIN | LEFT OUTER JOIN | RIGHT OUTER JOIN tabel ON kondisi
0 atau
SELECT nama_kolom
FROM tabel
INNER JOIN | LEFT OUTER JOIN | RIGHT OUTER JOIN tabel ON kondisi
1, sedangkan filter datanya dilakukan pada klausa
SELECT pl.id_pelanggan, nama, tgl_transaksi, total_transaksi
FROM pelanggan pl
JOIN penjualan pn USING(id_pelanggan)
6, misal:

+--------------+---------+-------------------+
| id_pelanggan | nama    | email             |
+--------------+---------+-------------------+
|            1 | Alfa    | [email protected]    |
|            2 | Beta    | [email protected]    |
|            3 | Charlie | [email protected] |
|            4 | Delta   | [email protected]   |
+--------------+---------+-------------------+
6

sedangkan pada implisit

+--------------+---------+-------------------+
| id_pelanggan | nama    | email             |
+--------------+---------+-------------------+
|            1 | Alfa    | [email protected]    |
|            2 | Beta    | [email protected]    |
|            3 | Charlie | [email protected] |
|            4 | Delta   | [email protected]   |
+--------------+---------+-------------------+
8, hubungan antar tabel dan filter datanya, semua didefinisikan pada klausa
SELECT pl.id_pelanggan, nama, tgl_transaksi, total_transaksi
FROM pelanggan pl
JOIN penjualan pn USING(id_pelanggan)
6, misal:

Menggabungkan 2 tabel dimana di antara dua tabel datanya?

1. INNER JOIN Menggabungkan dua tabel dimana diantara dua tabel datanya bersesuaian.

Alter table untuk apa?

ALTER: Perintah alter digunakan untuk melakukan perubahan struktur tabel yang telah dibuat. Misalnya, menambah Field (Add), mengganti nama Field (Change) ataupun menamakannya kembali (Rename), dan menghapus Field (Drop).

Fungsi SQL apa yang akan mengembalikan data dengan nilai yang cocok di kedua tabel?

Dalam SQL, kita menggunakan fungsi join untuk menggabungkan data dari dua tabel atau lebih berdasarkan kolom dengan nilai yang cocok.

Untuk membandingkan record di setiap table untuk dicek apakah nilai sama atau tidak menggunakan perintah?

INNER JOIN membandingkan record di setiap table untuk dicek apakah nilai sama atau tidak.