У меня есть два оператора select, которые используют три таблицы. Мне нужно иметь возможность создать таблицу из них и сказать, если оператор select 1 затем назначит пользователю значение = 10, если выбрать оператор 2, тогда присвойте user_id значение = 7. В моей новой таблице я бы получил user_id и его значение был назначен, если оператор case оценивает значение true. Я продолжаю получать синтаксические ошибки для любых заявлений о делах, которые я пишуОператоры case с несколькими объединениями
SELECT m.user_id,f.manager_id
from sales b
JOIN promotions m on b.user_id = m.user_id
JOIN promotions f on b.user_sub_id = f.user_id
where m.address = f.address
and m.post = '95103'
SELECT m.user_id,f.manager_id
from sales b
JOIN promotions m on b.user_id = m.user_id
JOIN promotions f on b.user_sub_id = f.user_id
where m.address = f.address
and m.post = '98746'
AND f.address <> 'NULL' AND
NOT EXISTS (SELECT 1
FROM payments c
WHERE c.member_id = b.user_sub_id AND
c.status <> 'NULL'
AND c.info = 'T'
)
Возможная Дубликат [заявления в случае с псевдонимом] (http://stackoverflow.com/questions/35963293/case-statements-with-alias) – Migo
Похоже Migo уже ответил на этот вопрос. Тем не менее, я хотел бы отметить, что, хотя 'f.address <> 'NULL'' и' c.status <> NULL'' не будут вызывать синтаксические ошибки, я не думаю, что они будут работать так, как вы ожидаете (если эти столбцы буквально не содержат строку '' NULL''. Если, с другой стороны, они будут просто 'NULL', вам нужно использовать' f.address IS NOT NULL' и 'c.status IS NOT NULL' вместо этого. – gmm