Di mana klausa digunakan dalam gabungan kiri
P粉439804514
P粉439804514 2023-10-11 12:46:28
0
2
686

Saya perlu mendapatkan semula semua tetapan lalai daripada jadual tetapan, tetapi juga mendapatkan tetapan aksara jika aksara x hadir.

Tetapi pertanyaan ini hanya mendapatkan semula tetapan dengan aksara = 1, jika pengguna belum menetapkan apa-apa, ia tidak akan mendapatkan semula tetapan lalai.

SELECT `settings`.*, `character_settings`.`value`
FROM (`settings`)
LEFT JOIN `character_settings` 
ON `character_settings`.`setting_id` = `settings`.`id`
WHERE `character_settings`.`character_id` = '1'

Jadi saya sepatutnya memerlukan sesuatu seperti ini:

array(
    '0' => array('somekey' => 'keyname', 'value' => 'thevalue'),
    '1' => array('somekey2' => 'keyname2'),
    '2' => array('somekey3' => 'keyname3')
)

Di mana kekunci 1 dan 2 ialah nilai lalai apabila kunci 0 mengandungi nilai lalai dengan nilai aksara.

P粉439804514
P粉439804514

membalas semua(2)
P粉585541766

Apabila melakukan OUTER JOIN (ANSI-89 atau ANSI-92), kedudukan penapis adalah penting kerana syarat yang dinyatakan dalam klausa ON digunakan sebelum melakukan JOIN. ON 子句中指定的条件。 建立 JOIN 后将应用 WHERE 子句中提供的针对 OUTER JOINed 表的条件。这可能会产生非常不同的结果集。相比之下,如果在 ONWHERESelepas JOIN diwujudkan

syarat yang disediakan dalam klausa WHERE untuk jadual OUTER JOINed akan digunakan. Ini mungkin menghasilkan set hasil yang sangat berbeza. Sebaliknya, tidak penting untuk JOIN DALAM jika anda memberikan syarat dalam klausa ON atau WHERE - hasilnya akan sama. 🎜
SELECT  s.*, 
          cs.`value`
     FROM SETTINGS s
LEFT JOIN CHARACTER_SETTINGS cs ON cs.setting_id = s.id
                               AND cs.character_id = 1
P粉957723124

where 子句会过滤掉 left join Talian tidak berjaya. Pindahkannya ke sambungan:

SELECT  `settings`.*, `character_settings`.`value`
FROM    `settings`
LEFT JOIN 
       `character_settings` 
ON     `character_settings`.`setting_id` = `settings`.`id`
        AND `character_settings`.`character_id` = '1'
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!