Вот скрипка; http://sqlfiddle.com/#!2/af8015/9SQL-запрос для установки значения, если существуют данные
Я некоторые данные, и я хочу, чтобы установить
- если пользователь и параметр г в таблице с именем п, в результате столбец должен быть 1;
- если параметр user и g указан в таблице с именем im, но не в cl, результат столбец должен быть -1;
- еще, результат должен быть столбец 0
Я использую следующий запрос;
select *,
case cl.user_id
when null then -1
when im.user_id then 1
end as result
from im
left join cl on cl.user_id = im.user_id
and cl.id_g = im.id_g
left join user on user.user_id = im.user_id
left join g on g.id_g = im.id_g
Но, он возвращает значение null для -1, и я не мог установить 0 для последнего случая.
Ожидаемая таблица результатов;
user id - g id - result
1 1 1
1 2 1
1 3 0
1 4 1
2 1 1
2 2 1
2 3 -1
2 4 0
...
Почему ваша последовательность 'JOIN' начинается с таблицы' im'? Одно из ваших требований, по-видимому, связано с тем, что из этой таблицы будет отсутствовать строка. –