Я пытаюсь создать объединение, но я не могу заставить его работать в MySQL, я знаю, что должен быть способ.
У меня есть две таблицы: 1. Setting
и 2. User_Setting
(и конечно User
, но здесь это не понадобится).
Структура
Setting.setting_id
Setting.description
Setting.value_type
Setting.default_value
User_Setting.user_id
User_Setting.setting_id
User_Setting.value
Я хочу выбрать ВСЕ Setting
записей и присоединиться к User_Setting
там, где есть значение. Классическое внешнее соединение, я бы поверил?
У меня есть этот запрос:
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;
Но это не работает, если User
с user_id
2 имеет запись User_Setting
для определенного setting_id
, но User
с user_id
1 не имеет setting_id
запись сохранена ...
У кого-нибудь есть запрос, где будут получены ВСЕ настройки, с user_id
и value
NULL, если запись User_Setting
не существует?