Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Melakukan Gabungan Kiri dengan Penapisan Bersyarat dalam SQL?

Bagaimana untuk Melakukan Gabungan Kiri dengan Penapisan Bersyarat dalam SQL?

Linda Hamilton
Lepaskan: 2025-01-22 07:52:10
asal
370 orang telah melayarinya

How to Perform a Left Join with Conditional Filtering in SQL?

SQL meninggalkan gabungan dan penapisan bersyarat

Dalam sambungan pangkalan data, selalunya perlu untuk menggabungkan data daripada berbilang jadual semasa menggunakan syarat penapis tertentu. Pertimbangkan senario berikut:

Anda mahu mendapatkan semula tetapan lalai daripada jadual settings dan, jika perlu, tetapan khusus peranan daripada jadual character_settings untuk peranan tertentu. Walau bagaimanapun, pertanyaan di bawah hanya mengembalikan lalai jika tetapan peranan sepadan dengan nilai tertentu dan mengabaikan lalai jika tiada tetapan peranan ditentukan:

<code class="language-sql">SELECT `settings`.*, `character_settings`.`value`
FROM (`settings`)
LEFT JOIN `character_settings` 
ON `character_settings`.`setting_id` = `settings`.`id`
WHERE `character_settings`.`character_id` = '1'  </code>
Salin selepas log masuk

Untuk mendapatkan semula semua tetapan lalai dan mendapatkan tetapan peranan apabila tersedia, kami perlu mengalihkan syarat penapis ke klausa gabungan:

<code class="language-sql">SELECT  `settings`.*, `character_settings`.`value`
FROM    `settings`
LEFT JOIN 
       `character_settings` 
ON     `character_settings`.`setting_id` = `settings`.`id`
        AND `character_settings`.`character_id` = '1'  </code>
Salin selepas log masuk

Dengan meletakkan klausa WHERE dalam syarat cantum, kami menyatakan bahawa hanya baris yang mana gabungan kiri berjaya akan disertakan dalam set hasil. Ini membolehkan kami mendapatkan semula tetapan lalai sementara masih mengambil kira kemungkinan tetapan khusus peranan.

Atas ialah kandungan terperinci Bagaimana untuk Melakukan Gabungan Kiri dengan Penapisan Bersyarat dalam SQL?. 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