J'ai besoin de récupérer tous les paramètres par défaut du tableau des paramètres, mais également d'obtenir les paramètres des caractères si le caractère x est présent.
Mais cette requête ne récupère que les paramètres avec le caractère = 1, si l'utilisateur n'a rien défini, elle ne récupérera pas les paramètres par défaut.
SELECT `settings`.*, `character_settings`.`value` FROM (`settings`) LEFT JOIN `character_settings` ON `character_settings`.`setting_id` = `settings`.`id` WHERE `character_settings`.`character_id` = '1'
Je devrais donc avoir besoin de quelque chose comme ceci :
array( '0' => array('somekey' => 'keyname', 'value' => 'thevalue'), '1' => array('somekey2' => 'keyname2'), '2' => array('somekey3' => 'keyname3') )
Où les clés 1 et 2 sont les valeurs par défaut lorsque la clé 0 contient une valeur par défaut avec une valeur de caractère.
Lors d'un OUTER JOIN (ANSI-89 ou ANSI-92), la position du filtre est importante car les conditions spécifiées dans la clause
les conditions fournies dans la clauseON
sont appliquées avant d'effectuer le JOIN.ON
子句中指定的条件。 建立 JOIN 后将应用WHERE
子句中提供的针对 OUTER JOINed 表的条件。这可能会产生非常不同的结果集。相比之下,如果在ON
或WHERE
Une fois le JOIN établiWHERE
pour la table OUTER JOINed seront appliquées. Cela peut produire des ensembles de résultats très différents. En revanche, cela n'a pas d'importance pour un INNER JOIN si vous fournissez la condition dans la clauseON
ouWHERE
- le résultat sera le même. 🎜where
子句会过滤掉left join
Ligne infructueuse. Déplacez-le vers la connexion :