Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Dapatkan Semua Kategori dan Harga Produk Minimum/Maksimumnya dalam MySQL, Walaupun Beberapa Kategori Tiada Produk?

Bagaimana untuk Dapatkan Semua Kategori dan Harga Produk Minimum/Maksimumnya dalam MySQL, Walaupun Beberapa Kategori Tiada Produk?

Linda Hamilton
Lepaskan: 2024-12-04 16:25:16
asal
679 orang telah melayarinya

How to Retrieve All Categories and Their Minimum/Maximum Product Prices in MySQL, Even When Some Categories Have No Products?

Memilih daripada Dua Jadual dengan Baris Tidak Sama dalam MySQL

Dalam pangkalan data beli-belah dalam talian dengan dua jadual - kategori dan produk - tugas biasa ialah untuk mendapatkan semula semua kategori bersama-sama dengan harga produk minimum dan maksimum dalam setiap kategori. Walau bagaimanapun, pertanyaan mudah menghadapi isu: kategori tanpa produk dikecualikan daripada hasil carian.

Untuk menangani cabaran ini, anda perlu menggunakan gabungan luar dan bukannya gabungan tersirat. Cantuman luar membenarkan baris daripada satu jadual (dalam kes ini, kategori) diambil walaupun tiada baris yang sepadan dalam jadual lain (produk). Khususnya, gabungan kiri digunakan di sini, supaya semua kategori disertakan dalam keputusan.

Selain itu, untuk menggantikan nilai nol dengan 0 untuk kategori tanpa produk, fungsi IFNULL() digunakan. Fungsi ini mengambil nilai ungkapan yang disediakan dalam argumen pertama dan jika ia nol, sebaliknya mengembalikan nilai yang dinyatakan dalam argumen kedua.

Sintaks pertanyaan yang dikemas kini adalah seperti berikut:

SELECT
    sc.*,
    IFNULL(MIN(s.price), 0) AS minp,
    IFNULL(MAX(s.price), 0) AS maxp
FROM categories AS sc
LEFT JOIN products AS s
ON s.ownerid = sc.id
GROUP BY sc.id
Salin selepas log masuk

Dengan menggunakan sambungan luar dan fungsi IFNULL(), kami boleh mendapatkan semula semua kategori dan memastikan bahawa kategori tanpa produk diwakili dengan minp dan nilai maxp 0. Pertanyaan ini mengendalikan keperluan untuk memilih daripada dua jadual dengan berkesan walaupun tidak semua baris dalam satu jadual mempunyai entri yang sepadan dalam yang lain.

Atas ialah kandungan terperinci Bagaimana untuk Dapatkan Semua Kategori dan Harga Produk Minimum/Maksimumnya dalam MySQL, Walaupun Beberapa Kategori Tiada Produk?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan