BASIS DATA
Langkah awal, masukkan data berikut ke tabel detil_pesan.
detil_pesan
id_pesan id_produk jumlah harga
1 MIE001 3 jumlah x dengan harga di ID PRODUK
2 ATK001 4 jumlah x dengan harga di ID PRODUK
3 ATK002 5 jumlah x dengan harga di ID PRODUK
4 ATK002 6 jumlah x dengan harga di ID PRODUK
Pembuatan table detail_pesan
hal pertama yang dilakukan yaitu membuat tabel detail_pesan dengan syntak
mysql> create table detail_pesan (
-> id_pesan int (5),
-> id_produk varchar (10),
-> jumlah int (10),
-> harga decimal (10,0));
hasil yang ditampilkan
Karena record dalam field harga belum diketahui, maka tentukan terlebih dahulu menggunakan rumus jumlah x dengan harga di ID PRODUK. Ketikan perintah select id_produk, harga from produk untuk melihat harga masing-masing id_produk yang akan digunakan.
- Dari harga-harga tersebut kalikan dengan record jumlah masing-masing id_produk. Maka hasilnya seperti berikut :
- MIE001 : 3 x 2000 = 6000
- ATK001 : 4 x 5000 = 20000
- ATK002 : 5 x 7500 = 37500
- ATK002 : 6 x 7500 = 45000
- Setelah isi field harga diketahui, masukkan semua data tersebut ke dalam tabel detil_pesan dengan menggunakan syntak
mysql> INSERT INTO detail_pesan values
-> ('1', 'MIE001', '3', '6000'),
-> ('2', 'ATK001', '4', '20000'),
-> ('3', 'ATK002', '5', '37500'),
-> ('4', 'ATK002', '6', '45000');
dan melihat isi dari tabel detail_pesanan menggunakan syntak
mysql> select *from detail_pesan;
Pembahasan Soal
1. Lakukan INNER JOIN dari semua tabel yang bisa dilakukkan inner join! (tidak ada ketentuan minimal, semakin banyak tentu semakin baik jika benar)
- Inner join dari tabel pesan, pelanggan, dan detail_pesan. Untuk melakukan inner join dari 3 tabel tersebut gunakan perintah : select pesan.id_pesan, pesan.id_pelanggan, pelanggan.nm_pelanggan, pesan.tgl_pesan, detail_pesan.id_produk, detail_pesan.jumlah, detail_pesan.harga from pesan inner join pelanggan on pesan.id_pelanggan = pelanggan.id_pelanggan inner join detail_pesan on pesan.id_pesan = detail_pesan.id_pesan;
2. Lakukan LEFT JOIN untuk menampilkan id_pelanggan, nm_pelanggan, id_pesan, tgl_pesan
- LEFT JOIN untuk menampilkan id_pelanggan, nm_pelanggan, id_pesan, tgl_pesan, caranya dengan perintah : select pelanggan.id_pelanggan, pelanggan.nm_pelanggan, pesan.id_pesan, pesan.tgl_pesan from pelanggan left join pesan on pelanggan.id_pelanggan = pesan.id_pelanggan;
3. Tampilkan semua field dari penggabungan 3 tabel yang dimungkinkan karena adanya relasi tabel! (tidak ada ketentuan minimal, semakin banyak tentu semakin baik jika benar)
- Untuk menampilkan semua field dari penggabungan 3 tabel yang dimungkinkan karena adanya relasi tabel, gunakan perintah select pesan.*, detail_pesan.*, produk.* from pesan, produk, detail_pesan where pesan.id_pesan = detail_pesan.id_pesan and detail_pesan.id_produk = produk.id_produk;
Semua field dalam tabel pesan, detil_pesan, dan produk akan digabung
4. Salinlah syntak berikut "SELECT pesan.id_pesan, pesan.tgl_pesan, SUM(detail_pesan.jumlah) as jumlah FROM pesan, detail_pesan WHERE pesan.id_pesan=detail_pesan.id_pesan GROUP BY id_pesan;" hasilnya apa dan jelaskan!
SELECT pesan.id_pesan, pesan.tgl_pesan, SUM(detil_pesan.jumlah) as jumlah FROM pesan, detil_pesan WHERE pesan.id_pesan=detil_pesan.id_pesan GROUP BY id_pesan;
5. Salinlah syntak berikut "SELECT id_pelanggan, nm_pelanggan FROM pelanggan WHERE id_pelanggan IN (SELECT id_pelanggan FROM pesan);" hasilnya apa dan jelaskan perhatikan dengan melihat tabel pelanggan.
- SELECT id_pelanggan, nm_pelanggan FROM pelanggan WHERE id_pelanggan IN (SELECT id_pelanggan FROM pesan);
Hasilnya adalah tampilan id pelanggan dan nama pelanggan yang hanya pernah melakukan transaksi. id UAA005 dengan nama Ekalawya tidak ditampilkan karena belum pernah melakukan transaksi
Komentar
Posting Komentar