DB2 SQL: как мне добавить столбцы из таблицы «ГДЕ СУЩЕСТВУЕТ» в инструкцию select

#sql #db2 #where-clause #exists

#sql #db2 #where-предложение #существует

Вопрос:

Допустим, у меня есть этот запрос:

 select A.ID_NUM,A.EFF_DT,B.STRT_DT,B.END_DT
FROM MEMBERSHIP A
WHERE EXISTS
(SELECT 1 FROM PLAN B
WHERE A.ID = B.ID)
 

Как мне добавить столбцы из таблицы PLAN (B.STRT_DT, B.END_DT) в инструкцию select?
Я получаю сообщение об ошибке: B.STRT_DT недопустимо в контексте, где оно используется SQLCODE = 206

Ответ №1:

Вы используете JOIN :

 SELECT M.ID_NUM, M.EFF_DT, P.STRT_DT, P.END_DT
FROM MEMBERSHIP M JOIN
     PLAN P
     ON M.ID = P.ID;
 

Ответ №2:

Объединение было бы самым простым способом, хотя, если ваша таблица PLAN не уникальна в своем столбце ID, вам нужно будет добавить DISTINCT либо до (либо после) объединения.

 SELECT A.ID_NUM,A.EFF_DT,B.STRT_DT,B.END_DT
FROM MEMBERSHIP A
JOIN (SELECT DISTINCT ID FROM PLAN) B 
ON ( A.ID = B.ID )