DEV Community

Dhiecoderweb
Dhiecoderweb

Posted on • Originally published at dhiecoderweb.com

Cara Menggunakan Subquery di MySQL

Bayangkan Anda perlu mencari produk yang harganya di atas rata-rata harga semua produk. Atau mencari pelanggan yang pernah melakukan pembelian di atas nilai tertentu. Untuk kebutuhan seperti ini, Anda memerlukan Subquery — yaitu query yang ditulis di dalam query lainnya. Subquery adalah salah satu fitur SQL paling powerful yang wajib Anda kuasai. Artikel ini membahas cara menggunakannya di berbagai situasi.

Apa Itu Subquery?

Subquery (disebut juga inner query atau nested query) adalah SELECT yang ditempatkan di dalam query lain. Query yang "membungkus" subquery disebut outer query. Subquery selalu diapit tanda kurung () dan biasanya dieksekusi lebih dulu sebelum outer query.

Persiapan Data Contoh

CREATE TABLE produk (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nama VARCHAR(150) NOT NULL,
    kategori VARCHAR(50),
    harga DECIMAL(10,2) NOT NULL,
    stok INT DEFAULT 0
) ENGINE=InnoDB;

CREATE TABLE penjualan (
    id INT AUTO_INCREMENT PRIMARY KEY,
    id_produk INT NOT NULL,
    jumlah INT NOT NULL,
    tanggal DATE NOT NULL
) ENGINE=InnoDB;

INSERT INTO produk (nama, kategori, harga, stok) VALUES
('Laptop ASUS', 'Elektronik', 9500000, 10),
('Mouse Logitech', 'Elektronik', 350000, 50),
('Keyboard Mechanical', 'Elektronik', 750000, 30),
('Meja Kayu', 'Furnitur', 2200000, 5),
('Kursi Ergonomis', 'Furnitur', 3500000, 8),
('Buku MySQL', 'Buku', 95000, 100),
('Monitor 27"', 'Elektronik', 4800000, 15);

INSERT INTO penjualan (id_produk, jumlah, tanggal) VALUES
(1, 2, '2024-01-10'), (2, 10, '2024-01-11'),
(3, 5, '2024-01-12'), (1, 1, '2024-01-13'),
(5, 2, '2024-01-14'), (7, 3, '2024-01-15');
Enter fullscreen mode Exit fullscreen mode

Artikel ini ditampilkan sebagian. Untuk pembahasan selengkapnya, beserta contoh dan langkah detailnya, Anda dapat membacanya pada sumber aslinya:

Cara Menggunakan Subquery di MySQL

Tutorial pemrograman dan tools developer lainnya juga tersedia di dhiecoderweb.com.

Top comments (0)