Проверка SQL IS NULL не дает правильного результата - PullRequest
0 голосов
/ 19 октября 2018

У меня есть три таблицы: mm_members, cmn_addresses, mm_member_statement_delivery_options

В mm_members, у меня есть столбцы -> member_id, member_number, member_name

В cmn_addresses у меня есть столбцы -> reference_id, reference_type, email, address и здесь reference_id совпадает с member_id

В mm_member_statement_delivery_options, Iесть столбцы -> member_id, statement_delivery_method

Я хочу, чтобы все member_numbers имели mm_member_statement_delivery_options, statement_delivery_method IN(2,3), а в cmn_addresses они не имеют электронной почты и имеют reference_type = 3

Я сгенерировал запрос ниже, это не дает желаемый результат

SELECT member_number FROM mm_members a 
JOIN mm_member_statement_delivery_options b ON a.member_id=b.member_id 
JOIN cmn_addresses c ON b.member_id=c.reference_id 
WHERE c.reference_type = 3
AND b.statement_delivery_method IN (2,3)
AND  (c.EMAIL IS NULL OR c.EMAIL = "");

1 Ответ

0 голосов
/ 19 октября 2018
Hope it will work for you :)

SELECT 
DISTINCT mm_members.member_number AS MEMBER_NUMBER, 
TRIM(CONCAT(mm_members.first_name,' ',mm_members.last_Name)) AS MEMBER_NAME, 
cmn_addresses.email AS MEMBER_EMAIL, 
mm_member_statement_delivery_options.statement_delivery_method 
FROM mm_members 
JOIN cmn_addresses ON cmn_addresses.reference_id = mm_members.member_id AND cmn_addresses.reference_type = 3 
JOIN mm_member_statement_delivery_options ON mm_member_statement_delivery_options.member_id = mm_members.member_id 
WHERE (cmn_addresses.email IS NULL OR cmn_addresses.email = '') 
AND mm_member_statement_delivery_options.statement_delivery_method IN ('2','3') 
ORDER BY MEMBER_NUMBER;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...