Необходимо объединить таблицу SQL с множественным соответствием, если значение не совпадает, должно возвращаться пустое значение / NA - PullRequest
0 голосов
/ 12 октября 2018

Я хочу объединить таблицы ниже таким образом, чтобы он возвращал совпадающее значение, если он не совпадает, должен возвращать значение как "NA".ниже приведены данные таблицы

доступные таблицы: available tables

желаемый результат: desired output table

Ответы [ 3 ]

0 голосов
/ 12 октября 2018

Если значение не найдено в MySQL LEFT JOIN, поле "заполняется" NULL

. Насколько я понимаю, ваш вопрос - IFNULL

SELECT
 r.*,
 IFNULL(process_name,'NA')
FROM
resolution r
LEFT JOIN processes p ON p.process_id = r.process_id
0 голосов
/ 13 октября 2018
select a.ticket_id,a.status,a.department,a.ownername,
case
when b.process_name is null then 'NA'
else b.process_name
end as proces_name
from resolution_tab a
left join process_tab b
on a.process_id=b.process_id
order by a.ticket_id;
0 голосов
/ 12 октября 2018
  • Используйте Left Join между таблицами, чтобы рассмотреть те строки, которые также не существуют в таблице Process.
  • Вы можете использовать функцию Ifnull(),чтобы установить значение NA, если в таблице Process нет соответствующей строки (таким образом, null value).

Попробуйте выполнить следующее (соответственно измените имена таблиц и столбцов):

SELECT r.Ticket_id, 
       r.Status,
       r.Department, 
       r.Owner, 
       r.Process_id, 
       IFNULL(p.Proces_Name, 'NA')
FROM Resolution AS r 
LEFT JOIN Process AS p ON p.Process_id = r.Process_id
...