J'essaye de construire une jointure, mais je ne peux pas l'obtenir pour fonctionner dans MySQL, je sais qu'il doit y avoir un moyen.MySQL Join exclusion de certains enregistrements?
J'ai deux tables: 1. Setting
et 2. User_Setting
(et ofcourse User
mais ce ne sera pas nécessaire ici).
Structure
Setting.setting_id Setting.description Setting.value_type Setting.default_value User_Setting.user_id User_Setting.setting_id User_Setting.value
Je veux sélectionner tous les dossiers Setting
et rejoindre User_Setting
où il y a une valeur. Jointure externe classique je crois?
J'ai cette requête:
SELECT `User_Setting`.`user_id`, `User_Setting`.`value`, `Setting`.`setting_id`, `Setting`.`default_value`, `Setting`.`value_type`, FROM `User_Setting` Right Join `Setting` ON `User_Setting`.`setting_id` = `Setting`.`setting_id` WHERE `User_Setting`.`user_id` IS NULL OR `User_Setting`.`user_id` = 1;
Mais cela ne fonctionne pas si un User
avec user_id
2 a un cadeau record User_Setting
pour un certain setting_id
, mais le User
avec user_id
1 n'a pas obtenu que setting_id
enregistrement stocké ...
Est-ce que quelqu'un a une requête où TOUS les paramètres seront récupérés, avec user_id
et value
NULL si leL'enregistrementn'existe pas?
génial cela fonctionne parfaitement. Merci! – Ropstah