Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Dapatkan Semua Kategori dan Harga Produk Minimum/Maksimumnya, Termasuk Kategori Tanpa Produk, dalam MySQL?

Bagaimanakah Saya Boleh Dapatkan Semua Kategori dan Harga Produk Minimum/Maksimumnya, Termasuk Kategori Tanpa Produk, dalam MySQL?

Linda Hamilton
Lepaskan: 2024-12-19 00:07:10
asal
857 orang telah melayarinya

How Can I Retrieve All Categories and Their Minimum/Maximum Product Prices, Including Categories Without Products, in MySQL?

Memilih daripada Berbilang Jadual dengan Surat Menyurat Hilang dalam MySQL

Untuk membuat pertanyaan dengan berkesan merentas berbilang jadual, walaupun dalam senario yang tidak semua baris dalam satu jadual mempunyai entri yang sepadan dalam yang lain, MySQL menyediakan konsep gabungan luar. Pertimbangkan senario kedai dalam talian dengan kategori dan jadual produk.

Andaikan kami ingin mendapatkan semua kategori dan mengira harga minimum dan maksimum bagi setiap satu. Walau bagaimanapun, kami ingin memasukkan kategori tanpa sebarang produk dan menetapkan harga min dan maksnya kepada 0. Pertanyaan asal:

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

Mengecualikan kategori tanpa produk kerana keadaan sambungan dalaman. Untuk memasukkan semua kategori, kami menggunakan LEFT JOIN:

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

LEFT JOIN mengekalkan semua baris dalam jadual kategori (sc), membenarkan pertanyaan untuk mendapatkan semula semua kategori, termasuk yang tanpa produk. Fungsi IFNULL menetapkan nilai nol (yang berlaku apabila tiada produk yang sepadan) kepada 0, memastikan minp dan maxp sentiasa dikembalikan dengan nilai yang sah.

Pendekatan ini memastikan bahawa pertanyaan mendapatkan semula semua kategori, tanpa mengira sama ada mereka mempunyai produk yang sepadan dan ia menetapkan 0 dengan betul untuk maklumat harga yang tiada.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Dapatkan Semua Kategori dan Harga Produk Minimum/Maksimumnya, Termasuk Kategori Tanpa Produk, dalam MySQL?. 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