Получение данных из другой таблицы, если они существуют, будет отображаться как Да, иначе нет

#mysql #sql #oracle

Вопрос:

Я пытаюсь получить новый столбец Claim_YN в таблице. Если в другой таблице есть данные, верните «да», в противном случае верните «нет». Вот пример:

Таблица Продуктов:

Product_ID
прод_1
прод_2
прод_3
прод_4
прод_5
прод_6

Таблица Претензий:

CLAIM_PRODUCT_ID
Прод_1
Прод_2
Прод_6

Я бы хотел, чтобы эти 2 столбца были объединены и выглядели как в выводе ниже:-

Product_ID Претензия Y/N
прод_1 ДА
прод_2 ДА
прод_3 НЕТ
прод_4 НЕТ
прод_5 НЕТ
прод_6 ДА

Таким образом, если утверждение существует, то сгенерированный новый столбец CLAIM_YN вернет «Да», в противном случае он вернет «Нет».

Кто-нибудь может мне в этом помочь? Спасибо!

Комментарии:

1. Что вы используете, Oracle или MySQL? Не добавляйте ненужные теги.

2. В любой базе данных используйте LEFT JOIN , чтобы определить, есть ли соответствующая строка в другой таблице.

Ответ №1:

Вы можете объединить a LEFT JOIN с CASE предложением. Например:

 select  p.product_id,  case when c.claim_product_id is not null then 'Yes'  else 'No' end as claim_yn from product p left join claim c on c.claim_product_id = p.product_id