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.
Apabila melakukan OUTER JOIN (ANSI-89 atau ANSI-92), kedudukan penapis adalah penting kerana syarat yang dinyatakan dalam klausa
syarat yang disediakan dalam klausaON
digunakan sebelum melakukan JOIN.ON
子句中指定的条件。 建立 JOIN 后将应用WHERE
子句中提供的针对 OUTER JOINed 表的条件。这可能会产生非常不同的结果集。相比之下,如果在ON
或WHERE
Selepas JOIN diwujudkanWHERE
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 klausaON
atauWHERE
- hasilnya akan sama. 🎜where
子句会过滤掉left join
Talian tidak berjaya. Pindahkannya ke sambungan: